30636 Commits
Author SHA1 Message Date
Zhengshou Lai 8d1776bc29 fixes
mlpack.mlpack / Linux (Go) (push) Waiting to run
mlpack.mlpack / Linux (Julia) (push) Waiting to run
mlpack.mlpack / Linux (Markdown) (push) Waiting to run
mlpack.mlpack / Linux (Python) (push) Waiting to run
mlpack.mlpack / macOS (Python) (push) Waiting to run
mlpack.mlpack / Linux (R) (push) Waiting to run
mlpack.mlpack / Linux (CLI) (push) Waiting to run
mlpack.mlpack / macOS (CLI) (push) Waiting to run
mlpack.mlpack / Linux (Debug) (push) Waiting to run
mlpack.mlpack / Windows build: VS2022 (push) Waiting to run
2025-05-11 22:57:03 +08:00
Zhengshou Lai 21f23b3058 fix 2025-05-11 22:45:33 +08:00
Zhengshou Lai 19be78b2b6 fixes 2025-05-11 21:50:06 +08:00
Zhengshou Lai 665479fde2 Merge remote-tracking branch 'upstream/master' 2025-05-11 21:05:09 +08:00
Omar ShritandRyan Curtin ca6c44c269 Data options stage1 (#3927)
* Start porting DataOptions from the previous PR

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Refactor the old implementation

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Import detect_file_type

Signed-off-by: Omar Shrit <omar@avontech.fr>

* import load categorical

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add utilities and other functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove more code related to ModelOptions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove other stuff that are ported but not required yet

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix a small thing

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding additional arma traits for loading csv

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix most of the errors

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Port save and implementation and load arff and other funcs

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the errors related to SFINAE according to @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the compiler confusion

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Some hopefully-helpful refactoring of DataOptionsBase.

* Adding SFINAEs to make it pass compilation

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix warning related to data_options

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Use move instead of copy

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Debug some failing tests and issues.

* Remove numeric csv, not used

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix a couple of bugs observed in tests

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add segfault comments

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Pass non-const headers to Armadillo so they are actually filled; and clean up combinatorial option-setting.

* Push the code for MissingPolicy

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the first part convert char to nan

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add datasetMissingPolicy to copy/move constructor/operators.

* All tests are passing, some debugging symbols left

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove all debugging symbols

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix compilation issue for older Armadillo.

* Oops, fix backwards condition.

* Update src/mlpack/core/data/utilities.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/data_options.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_categorical_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/save_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Change it to ARFFASCII

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix error handling everywhere

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix other error handling

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Separate data options classes into three files

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Do not forget to include the headers

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the failing test by removing white spaces for now

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the error message

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix LoadARFF

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Bring back SINAE

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update src/mlpack/core/data/utilities.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_arff_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_categorical_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/save_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/load_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Fix style

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Use Fatal Warn

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix last comment

Signed-off-by: Omar Shrit <omar@avontech.fr>

* last comment

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix declaration error

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix last style problems

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update src/mlpack/core/data/load_arff_impl.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2025-05-10 15:08:43 +02:00
Ryan Curtin 7eafaa79ee Document SpillTree and its four variants (#3925)
* Commit initial tested documentation of spill tree.

* Document all four variants of spill trees.

* Correct documentation: a rho of 0.5 will result in no overlapping.

* Add new trees to sidebar.

* Don't upgrade pip since it is installed by Homebrew on OS X.
2025-05-01 21:47:54 +02:00
Ryan Curtin dc8591fdbe Use Github Actions to build MSI installer (#3923)
* Re-add steps to build MSI installer.

* Fix name of directory from Azure to GHA.

* We have to build the HTML documentation before we can put it in the MSI.

* Install kramdown as a separate step.

* Specify Ruby version.

* Fix name of variable.

* Install the gfm parser too.
2025-04-22 17:36:20 -04:00
Zachary Ng 6efbe25a7e Shuffle sequence lengths (#3926) 2025-04-21 06:04:49 +02:00
RedInJector 381dccec1a Update COPYRIGHT.txt 2025-04-14 19:25:59 -04:00
RedInJector cc85aebda3 Update HISTORY.md 2025-04-14 19:25:59 -04:00
RedInJector f16ae8aba7 Update mlpack.cmake
removed unnecessary generator checks
2025-04-14 19:25:59 -04:00
RedInJector 6dfba71c9e Add ability to compile OpenBLAS for windows.
* moved OpenBLAS compilation logic to compile_OpenBLAS macro.
2025-04-14 19:25:59 -04:00
Ben Beasley 0ecd6db488 Drop pytest-runner and "setup.py test" support (#3921)
* Drop pytest-runner and "setup.py test" support

This does not affect running the tests with `pytest`.

Add a `test` extra to represent test dependencies.

* Remove spurious more-itertools test dependency

* Add HISTORY.md entry

* Add Benjamin A. Beasley to COPYRIGHT.txt
2025-04-08 13:59:01 +02:00
Ryan Curtin e30bd30df7 Add more cross-compilation hosts for CI job (#3906)
* Add a first attempt at explicitly using Jenkinsfiles.

* A first attempt...

* Put code in a script block.

* Add first attempt at link check job pipeline.

* Hopefully correct shell block.

* Install git.

* Install packages as root.

* Use custom image that already has dependencies installed.

* Try processing the JUnit results.

* Fix syntax (hopefully).

* Try to get the build to set its status on Github.

* Try and see if I can get the snippet build to run too.

* A first attempt at reviving the static code analysis build.

* Refactor style check job a bit.

* Try to clean up other files and have them set statuses.

* Set status in script blocks.

* Fix directory (this may not fix my problem).

* Should I load in the script step?

* Maybe I can just load it without a name.

* Maybe I have my path wrong.

* Will this work?  Just a test...

* Try using a plugin instead.

* And if I define the function manually at the top?

* Maybe this will fix the load.

* Try to turn unstable into failed.

* Hopefully fix documentation builds.

* Fix script blocks.

* Maybe fix static code analysis job.

* Try to adapt PR number variable.

* First attempt at cross-compilation job.

* Try to fix some syntax.

* Clean workspaces after build.

* Try to put the matrix in the right place.

* Another attempt at the matrix configuration.

* Maybe I have to nest it deeper.

* Maybe I have to clean always?

* What we need is more tabbing.

* Use try/catch to handle failed junit processing.

* Better handling of environment variables.

* Try a differernt approach than try/catch.

* Try to get some more information about ccache.

* Is it possible we could store the ccache at a higher level?

* Maybe I have the variable name wrong.

* Clean the cross-compilation workspace.

* Try mounting the ccache so it can be shared across multiple jobs.

* Always pull images.

* We need to run on the same node.

* Run on only one core.

* Try building in the Docker container in a different way.

* Do I have the order backwards?

* Can I run anything at all in the container?

* The static code analysis job isn't helpful.

* Try to set the user of the docker container.

* Rebuild the Docker container instead.

* Always pull an updated image.

* Download any necessary dependencies too.

* Oops, use the correct CMake options.

* Fix line break in the wrong place.

* Make sure to use the correct architecture.

* We can't use MATCHES, that is a regex.

* Oops, we need to use STREQUAL.

* Bump to an older version since newer versions don't have gfortran.

* Try to run the tests on the target.

* Correct syntax.

* Okay, I'm not allowed to generate a stage name.

* Try cleaning the workspace at the start of the build.

* Okay, so I just can't depend on the workspace cleaning job, wonderful.

* Try and add the passphrase correctly.

* Fix path for memory checks.

* Fix path to test.

* Fix PR number variable.

* Try to fix path for test copying.

* Try to get the PR number correct.

* Try and centralize where the link cache is stored.

* Why is it being printed strangely?

* Is there some weird restriction where this all has to be on one line?

* Always publish the HTML, and fix a link.

* Try to fix SSH host key check.

* Make the reports directory.

* Try to fix file parsing.

* Try to enable ccache.

* Try to set ccache directory correctly.

* Try to get the full pipeline set up correctly for cross-compilation.

* Fix path to test data.

* Allow debug builds when cross-compiling.

* Remember to unpack all the test data!

* Fail tests when the data isn't there.

* Maybe I can use find instead.

* Double escape for backslash?

* What if we just run the test?

* Port Catch2 improvement for junit runner.

See https://github.com/catchorg/Catch2/commit/c29e198eab0ccdb190495397854b937677385e2e.

* Re-enable junit testing (hopefully it will work now).

* Output directly to the xml file.

* Try to clean up regex.

* Try to set IN PROGRESS status.

* Could it be called RUNNING?

* I guess I don't get access to set jobs in progress through this API.

* Fix regex for test name extraction.

* Try to clean up Jenkinsfiles.

* Fix parameter name.

* Maybe fix syntax?

* Does it work without keyword arguments?

* Correctly accept named parameters.

* Abort previous builds to reduce load on Jenkins.

* Use optimization when compiling.

* Fix syntax for abortPrevious.

* Fix missing closing brace...

* Update links in CI documentation and try to fix memory check job.

* Add a few more hosts for testing.

* Document the additional systems.

* Separate build directories for each matrix entry.

* Use safer directory name.

* What directory are we in?

* Try an alternate strategy of setting build names.

* Fix typo.

* Assemble container name.

* Oops, forgot one.

* Oops, fix the last use of  to .

* Fix bad merge.

* Set different page sizes for different systems.

* Try different quotation strategy.

* Make sure the variable actually gets substituted in.

* Quotes, bane of my existence.

* Update Jetson Orin Nano link.

* Try to use CORTEXA72 for the BB-AI again.

* Try to set flags for the Jetson Orin Nano too.

* Remove board names and use architecture names instead.

* Re-add RPI4 as BCM2711.

* Try to get the junit files back using the correct variable.
2025-04-06 12:55:04 +02:00
Ryan Curtin f251258885 Enable mlpack_image_converter so that it always builds. 2025-04-05 19:54:17 -04:00
Ryan Curtin 6652c52417 Add new block for next release to HISTORY.md. 2025-04-03 11:47:01 -04:00
Ryan Curtin 9764349a19 Update and release version 4.6.0. 2025-04-03 11:47:01 -04:00
Omar Shrit 99a46b4bd2 Fix mutex directive for arma (#3918)
Signed-off-by: Omar Shrit <omar@avontech.fr>
2025-04-03 09:55:59 -04:00
Ryan Curtin e4b4b3179e Fix CMake configuration for older Armadillo versions on CI (#3917)
* Ensure builds fail on any step.

* Work around CMake error.
2025-04-02 13:12:14 -04:00
github-actions[bot]andYashwants19 077dfdb596 Upgrade CLI11 to 2.5.0 (#3902)
Co-authored-by: Yashwants19 <Yashwants19@users.noreply.github.com>
2025-03-31 15:44:17 -04:00
Ryan Curtin 5a14c258ce Fix LSTM input size calculation (#3913)
* Fix #3912 by computing the product of input dimensions.

* Update HISTORY.

* Try to fix cross-compilation failure (part 1).

* Now actually copy the cat over and the test should pass.
2025-03-31 15:43:13 -04:00
Ryan Curtin 1ca98f966c Minor CI cleanups (#3911)
* Add a test case that will fail to see what output we get in CI.

* Try to use the Github Checks API plugin to report status.

* Work a little harder with the publishChecks function.

* Hopefully fix URL path.

* Try one more place.

* Try to clean up the job a little bit; it does seem like it's owrking.

* Try to move checks definition into utils file.

* Maybe it needs to be in a script block.

* We can't publish a check until after the repo is cloned.

* Try to refactor the rest of the Jenkinsfile.

* Try to get the amount of time each step took.

* Oops, using the wrong variable for how long things have taken.

* Try and use the builtin checks only; maybe they will work.

* Revert "Try and use the builtin checks only; maybe they will work."

This reverts commit 461ea584206fcb12a4fc00cbcdb0d289a0bc7ef2.

* Try to clean up the output a little bit.

* Try to disable the extra check being published.

* Adapt the rest of the jobs to use the checks API.

* Fix syntactical issues.

* Remove failing test.

* Try adding a def to stop the warning.

* Okay, that's not the right syntax.

* Oops, remove old status setting block.
2025-03-30 09:25:10 -04:00
Omar ShritandRyan Curtin aa613f8b2f CropResize (#3903)
* Adding the crop function implementation

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove debugging symbols

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add another two sheeps photos

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding tests for cropping the images

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding documentation of CropResize

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Improve the imeplementation according to what is mentioned

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding images to make it easier to understand

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Fix Ryan proposal

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the docs

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove the test regarding checking of the dimension are identical

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add a pixel-level sanity check test.

* Update documentation; slight wording cleanup, add a clear example.

* Add a test for the case where we upscale.

* Use different filenames.

* Prevent resize if the user did not ask for it

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove unused variables.

* Change && to ||

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix style, and function name

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the other style issues

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add a note to HISTORY.md.

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2025-03-30 11:29:20 +02:00
Ryan CurtinandDirk Eddelbuettel e70a04fbba Add Docker deployment documentation (#3907)
* Add a first attempt at explicitly using Jenkinsfiles.

* A first attempt...

* Put code in a script block.

* Add first attempt at link check job pipeline.

* Hopefully correct shell block.

* Install git.

* Install packages as root.

* Use custom image that already has dependencies installed.

* Try processing the JUnit results.

* Fix syntax (hopefully).

* Try to get the build to set its status on Github.

* Try and see if I can get the snippet build to run too.

* A first attempt at reviving the static code analysis build.

* Refactor style check job a bit.

* Try to clean up other files and have them set statuses.

* Set status in script blocks.

* Fix directory (this may not fix my problem).

* Should I load in the script step?

* Maybe I can just load it without a name.

* Maybe I have my path wrong.

* Will this work?  Just a test...

* Try using a plugin instead.

* And if I define the function manually at the top?

* Maybe this will fix the load.

* Try to turn unstable into failed.

* Hopefully fix documentation builds.

* Fix script blocks.

* Maybe fix static code analysis job.

* Try to adapt PR number variable.

* First attempt at cross-compilation job.

* Try to fix some syntax.

* Clean workspaces after build.

* Try to put the matrix in the right place.

* Another attempt at the matrix configuration.

* Maybe I have to nest it deeper.

* Maybe I have to clean always?

* What we need is more tabbing.

* Use try/catch to handle failed junit processing.

* Better handling of environment variables.

* Try a differernt approach than try/catch.

* Try to get some more information about ccache.

* Is it possible we could store the ccache at a higher level?

* Maybe I have the variable name wrong.

* Clean the cross-compilation workspace.

* Try mounting the ccache so it can be shared across multiple jobs.

* Always pull images.

* We need to run on the same node.

* Run on only one core.

* Try building in the Docker container in a different way.

* Do I have the order backwards?

* Can I run anything at all in the container?

* The static code analysis job isn't helpful.

* Try to set the user of the docker container.

* Rebuild the Docker container instead.

* Always pull an updated image.

* Download any necessary dependencies too.

* Oops, use the correct CMake options.

* Fix line break in the wrong place.

* Make sure to use the correct architecture.

* We can't use MATCHES, that is a regex.

* Oops, we need to use STREQUAL.

* Bump to an older version since newer versions don't have gfortran.

* Try to run the tests on the target.

* Correct syntax.

* Okay, I'm not allowed to generate a stage name.

* Try cleaning the workspace at the start of the build.

* Okay, so I just can't depend on the workspace cleaning job, wonderful.

* Try and add the passphrase correctly.

* Fix path for memory checks.

* Fix path to test.

* Fix PR number variable.

* Try to fix path for test copying.

* Try to get the PR number correct.

* Try and centralize where the link cache is stored.

* Why is it being printed strangely?

* Is there some weird restriction where this all has to be on one line?

* Always publish the HTML, and fix a link.

* Try to fix SSH host key check.

* Make the reports directory.

* Try to fix file parsing.

* Try to enable ccache.

* Try to set ccache directory correctly.

* Try to get the full pipeline set up correctly for cross-compilation.

* Fix path to test data.

* Allow debug builds when cross-compiling.

* Remember to unpack all the test data!

* Fail tests when the data isn't there.

* Maybe I can use find instead.

* Double escape for backslash?

* What if we just run the test?

* Port Catch2 improvement for junit runner.

See https://github.com/catchorg/Catch2/commit/c29e198eab0ccdb190495397854b937677385e2e.

* Re-enable junit testing (hopefully it will work now).

* Output directly to the xml file.

* Try to clean up regex.

* Try to set IN PROGRESS status.

* Could it be called RUNNING?

* I guess I don't get access to set jobs in progress through this API.

* Fix regex for test name extraction.

* Try to clean up Jenkinsfiles.

* Fix parameter name.

* Maybe fix syntax?

* Does it work without keyword arguments?

* Correctly accept named parameters.

* Abort previous builds to reduce load on Jenkins.

* Use optimization when compiling.

* Fix syntax for abortPrevious.

* Fix missing closing brace...

* Update links in CI documentation and try to fix memory check job.

* Add Docker deployment page.

* Fix link.

* Fix missing link in pipeline.

* Apply suggestions from code review

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>

* Try to get some more information on the build failure.

* Fix link that now redirects.

* Try to get some more information about why we are not linking against OpenBLAS.

* I think the variable name was wrong, we will see...

* Clean things up since the build should work now.

---------

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>
2025-03-12 16:49:34 -04:00
Ryan Curtin a44fbe4906 Move Jenkins job configuration into the repository (#3893)
* Add a first attempt at explicitly using Jenkinsfiles.

* A first attempt...

* Put code in a script block.

* Add first attempt at link check job pipeline.

* Hopefully correct shell block.

* Install git.

* Install packages as root.

* Use custom image that already has dependencies installed.

* Try processing the JUnit results.

* Fix syntax (hopefully).

* Try to get the build to set its status on Github.

* Try and see if I can get the snippet build to run too.

* A first attempt at reviving the static code analysis build.

* Refactor style check job a bit.

* Try to clean up other files and have them set statuses.

* Set status in script blocks.

* Fix directory (this may not fix my problem).

* Should I load in the script step?

* Maybe I can just load it without a name.

* Maybe I have my path wrong.

* Will this work?  Just a test...

* Try using a plugin instead.

* And if I define the function manually at the top?

* Maybe this will fix the load.

* Try to turn unstable into failed.

* Hopefully fix documentation builds.

* Fix script blocks.

* Maybe fix static code analysis job.

* Try to adapt PR number variable.

* First attempt at cross-compilation job.

* Try to fix some syntax.

* Clean workspaces after build.

* Try to put the matrix in the right place.

* Another attempt at the matrix configuration.

* Maybe I have to nest it deeper.

* Maybe I have to clean always?

* What we need is more tabbing.

* Use try/catch to handle failed junit processing.

* Better handling of environment variables.

* Try a differernt approach than try/catch.

* Try to get some more information about ccache.

* Is it possible we could store the ccache at a higher level?

* Maybe I have the variable name wrong.

* Clean the cross-compilation workspace.

* Try mounting the ccache so it can be shared across multiple jobs.

* Always pull images.

* We need to run on the same node.

* Run on only one core.

* Try building in the Docker container in a different way.

* Do I have the order backwards?

* Can I run anything at all in the container?

* The static code analysis job isn't helpful.

* Try to set the user of the docker container.

* Rebuild the Docker container instead.

* Always pull an updated image.

* Download any necessary dependencies too.

* Oops, use the correct CMake options.

* Fix line break in the wrong place.

* Make sure to use the correct architecture.

* We can't use MATCHES, that is a regex.

* Oops, we need to use STREQUAL.

* Bump to an older version since newer versions don't have gfortran.

* Try to run the tests on the target.

* Correct syntax.

* Okay, I'm not allowed to generate a stage name.

* Try cleaning the workspace at the start of the build.

* Okay, so I just can't depend on the workspace cleaning job, wonderful.

* Try and add the passphrase correctly.

* Fix path for memory checks.

* Fix path to test.

* Fix PR number variable.

* Try to fix path for test copying.

* Try to get the PR number correct.

* Try and centralize where the link cache is stored.

* Why is it being printed strangely?

* Is there some weird restriction where this all has to be on one line?

* Always publish the HTML, and fix a link.

* Try to fix SSH host key check.

* Make the reports directory.

* Try to fix file parsing.

* Try to enable ccache.

* Try to set ccache directory correctly.

* Try to get the full pipeline set up correctly for cross-compilation.

* Fix path to test data.

* Allow debug builds when cross-compiling.

* Remember to unpack all the test data!

* Fail tests when the data isn't there.

* Maybe I can use find instead.

* Double escape for backslash?

* What if we just run the test?

* Port Catch2 improvement for junit runner.

See https://github.com/catchorg/Catch2/commit/c29e198eab0ccdb190495397854b937677385e2e.

* Re-enable junit testing (hopefully it will work now).

* Output directly to the xml file.

* Try to clean up regex.

* Try to set IN PROGRESS status.

* Could it be called RUNNING?

* I guess I don't get access to set jobs in progress through this API.

* Fix regex for test name extraction.

* Try to clean up Jenkinsfiles.

* Fix parameter name.

* Maybe fix syntax?

* Does it work without keyword arguments?

* Correctly accept named parameters.

* Abort previous builds to reduce load on Jenkins.

* Use optimization when compiling.

* Fix syntax for abortPrevious.

* Fix missing closing brace...

* Update links in CI documentation and try to fix memory check job.
2025-03-12 08:34:59 -04:00
b5e3284cf5 Bootstrap strategy for RandomForest (#3829)
* Added sequential bootstrapping to random forest.

* Fixed namespace.

* Fixed style checks.

* Fixed compilation issue.

* Comply to __libcpp_random_is_valid_urng

* Incorporated review feedback

* Corrected style checks.

* Reverted documentation.

* Made constructor implicit to catch armadillo template optimizations

* Fixed compilation error.

* Fixed style check.

* Fixed compilation error.

* Align argument lists between public and private Train function.

* Explicitly state template use to help GCC

* Fixed style check.

* Added name to contributor list.

* Changed indicator matrix to interval matrix

* Updated docs, implementation and testing after code review.

* Fixed style warnings.

* Updated documentation.

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Incorporating code review feedback

* Changed based on code review feedback

* reduced computational complexity.

* resolved conflict.

* resolved conflict

* Reworked after review

* Avoiding recomputation of the concurrency vector for speed-up.

* Resolve merge conflict

* fixed style

* fixed style

* Remove assert statement

* Update src/mlpack/tests/random_forest_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/random_forest_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Integrated changes after code review.

* Fixed style

* Resolved conflict

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Incorporated review comments.

* Fixed styling issues

* Restart style checks

* Update src/mlpack/tests/random_forest_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Reworked documentation from review comments

* Fixed style check

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update HISTORY.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Reworked example amd unit test.

* fixed build

* fixed documentation build

* Fixing style check build

* fixing style checks

* fixing check build

* Fix minor compilation issues with example, and make it give output.

---------

Co-authored-by: Felix Patschkowski <felix.patschkowski@itecequipment.com>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
Co-authored-by: Felix Patschkowski <felix.patschkowski@gmail.com>
2025-03-10 16:02:19 +01:00
Ryan Curtin e4fc09d9b8 Use catch -o option for junit output (#3904)
* Try using catch output option directly.

* Force a test to fail and give some output.

* It works!  Remove test that I broke.
2025-03-06 10:21:12 +01:00
Omar ShritandRyan Curtin 6d9919095d Quick fix for a couple of typos (#3905)
* quick fix for a a small things

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2025-03-06 10:20:48 +01:00
Ryan Curtin 0737eb0dc6 Document RPlusTree and RPlusPlusTree (#3897) 2025-03-03 01:13:53 +01:00
Omar Shrit 2076090a08 Fix small bug in finding mlpack if downloaded as dependency (#3900)
* Fix small bug in finding mlpack

Since mlpack include is inside a `src/` directory, this is make it more
complicated for CMake to find mlpack path if it is pulled as a dependency
by the user. Therefore, to fix this we are setting directly the
INCLUDE_PATH as the SEARCH_PATH as long as mlpack.hpp is found.

Other minor fixes are related to if /else logic. This will allow to set the
directories when we find the library in a second round.

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix minor things

Signed-off-by: Omar Shrit <omar@avontech.fr>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
2025-02-28 09:26:10 +01:00
Omar ShritandRyan Curtin 5b86ac1509 Re-organize in #ifdef and #else to avoid double declaration (#3898)
* Re-organize in #ifdef and #else to avoid double declaration

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix GetFilType Thanks to @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add a distr_param version from mlpack

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Change to local DistrParam in tests

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Change to local DistrParam in method

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Apply the same to core

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove resize not relevant in here

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update src/mlpack/core/util/distr_param.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/util/distr_param.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Merge master manually and revert cross validation

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix style

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix naming to fix Windows

Signed-off-by: Omar Shrit <omar@avontech.fr>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2025-02-27 10:20:55 +01:00
Omar ShritandRyan Curtin 58115633dd Add Findmlpack.cmake (#3872)
* Add Findmlack.cmake

I opened this PR, because it was so difficult to revive the old one.

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding the comments from the previous PR

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add the docs again

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add depedencies functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make the filename compatible with the standard

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move the dependencies search from CMakeLists

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove MATHJAX

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Refactor the CMake into dependencies

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Findarmadillo since it exist in CMake

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Arpack as well, already in the main stream

Signed-off-by: Omar Shrit <omar@avontech.fr>

* This needs to go, tooo old

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move cereal and ensmallen to mlpack

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Get rid of the empty files

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Doxygen generation file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Finish Findmlpack.cmake file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Increase Cmake version to 3.11 to avoid the warning

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add POST_BUILD to get rid of the warning

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove really old support for MACOS 11 and 9

This is more like 15 years old already

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Already specified no need to do it again

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix according to comments from @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* add message for armadillo

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Try to fix windows and cross CI at the same time

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Let us add brutally STB and Armadillo

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove STB image independant file from here

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding more into findmlpack

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move things from CMake as they are not directly relevant

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move the autdownloader to findmlpack

Signed-off-by: Omar Shrit <omar@avontech.fr>

* remove the autodownload

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove cmakeextras, added for obsure reasons

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove license for really old stuff

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Re-order the file how it should be

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move out of dependency

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Dependencies, as it is no longer used

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add stb to this file again

Signed-off-by: Omar Shrit <omar@avontech.fr>

* reorganize functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add find armadillo

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Dependencies files and autdownload

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make it use the internal functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Finishing most of the cmake modifications

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix a couple of last things

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Change the name and remove old file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix all comments left by @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the docs for each of the function

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move the cross compilation to inside fetch and make it as an auto detect

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Cut the parts that are refactored

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix function name

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove the ""

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Fix text and code

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Apply comments from @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* modify CMakeLists accordingly

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add PR in the history

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update HISTORY.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2025-02-25 21:00:53 +01:00
Ryan Curtin d035e1c6ac Handle empty Armadillo objects in Python JSON conversion (#3896) 2025-02-24 03:51:59 +01:00
Ryan Curtin 097d3cc214 Document HilbertRTree (#3891) 2025-02-24 03:51:32 +01:00
Ryan Curtin 639244dc58 Document RStarTree (#3888) 2025-02-19 01:35:45 +01:00
Ryan Curtin e60b566e8c Document XTree (#3890) 2025-02-19 01:13:14 +01:00
Ryan Curtin e7f79637f6 First attempt at GHA CI instead of Azure Pipelines. (#3881)
* First attempt at GHA CI instead of Azure Pipelines.

* Could I have the matrix config wrong?

* Oh, oops, I was just looking in the wrong place for the GHA log.

* Disable Azure Pipelines Linux job.

* Fix some additional small syntax errors.

* Minor updates.

* Try to figure out what is happening with this test!

* Ha, actually remember the argument.

* Try to parse the CTest results.

* Don't build CLI programs for the debug-only mlpack_test build.

* Try to figure out why we don't have the CTest output file.

* Seems like maybe the test just needs more iterations.

* Fix directory for CTest output.

* Try running mlpack_test manually to see if we get better test output.

* Remove version numbers and other non-XML from XML output test file.

* Try to fix debug build.

* Filtering regex.

* Try to fail the build when the tests fail.

* Minor fixes and cleanups to run Python binding tests.

* Print test failure information in the actual build step.

* Update Julia testing strategy.

* Try to also get outputs from other test bindings.

* Fix Julia and Go testing blocks.

* Avoid random collisions that cause test failures.

* Try moving splitting into the trial loop.

* Try a different test reporter action.

* Install pytest for Python tests.

* Fix working directory for Julia test.

* Add test case that will fail to see what it looks like.

* Back to the old action, the new one I tried didn't do what I needed.

* Try a better way to print the test output.

* I still don't know how to mark the job failed yet.

* Maybe this stdout character works better.

* Try a forked test-summary action.

* Try to use distribution version of the modified action.

* Try to see if ccache is doing anything.

* Always run ccache stats step.

* Turn off PCH for ccache.

* Let's just see what it looks like with more error output.

* Clean up ccache configuration.

* Remove fake test because it seems like now I have the output working right.

* Try to reduce file size by not printing debug output into it.

* Try and refactor binding environment seutp into a composite local action.

* Try to fix some syntactical errors.

* Refactor test running into a separate composite action.

* Start trying to make the R build part of the main CI build.

* Oops, the include directory was in the wrong place.

* Try actually running R tests in the workflow too.

* Try to fix a few action issues.

* Try to work around libicu issue.

* Remove unnecessary option.

* Try to run OS X builds too.

* Try to fix matrix configuration.

* Revert "Try to fix matrix configuration."

This reverts commit 22a08d6dcd0d39de0a27f2df16e885bd68e18fda.

* Oops, maybe it was just an extra comma.

* Fix naming, and maybe we have to remove stringi first.

* Try to set Julia location correctly.

* Some fixes to the pipelines.

* Oops, I need root for that.

* Some additional fixes for jobs.

* Hopefully fix a few more builds.

* What, how did that get there?

* Don't use non-portable -i option with sed.

* Run R tests properly to get junit output.

* Oops, I have to redirect the output.

* Where is the output file?

* Try to fix macOS Python location.

* Oops, ROOTDIR is just not set.

* Try to store the name of the R package correctly.

* Oops, we need to specify pip.

* Try to get the right directory for the R package.

* Try to fix another round of issues.  I'm getting closer, at least.

* Okay, fine, let's do it the brutalistic way.

* What is actually happening with the Go binding tests?

* Try a different strategy for printing.

* Make some updates to prepare for Windows builds.

* What's the output of go test?

* Remove -Wall as per golang/go#6883.

* Try to fix duplicate library warning.

* Maybe I just specified the variable in an invalid way that didn't stick?

* This should fix the Go build.

* How did that cd go missing?

* Try to remove DEBUG output from the debug tests.

* Try to be more specific about the ccache key.

* Oops, incorrect variable name.

* Try to speed up the testing step.

* Try to run the Windows build through GHA.

* Try to install locally to deps/.

* Try to install and set up Windows dependencies correctly.

* Try to debug Windows build.

* Use bash for CMake configuration.

* Some additional path fixes.

* A couple fixes, but I don't have the Armadillo path right.

* Fix curl command.

* Maybe this is closer to the right path...

* Okay, look one directory deeper...

* Temporarily print STB compilation failure.

* Try to use absolute path for STB inclusion test.

* Oops, fix syntax.

* Try using REALPATH instead.

* Try just skipping the check...

* Try specifying BLAS and LAPACK locations directly.

* Try to figure out what is going on.

* Are we even using the correct FindArmadillo script?

* Try specifying the libraries manually.

* Try disabling the wrapper library.

* What version of CMake is this?

* Print the configuration.

* What if we specify these library locations?

* Double-check: this should fail.

* Okay, that actually surprisingly did not fail.

* Fix style issues.

* Compress into only one GHA file so all the jobs show up in the same place.

* Try to use absolute path to OpenBLAS.

* Try to fix path mangling on Windows.

* Fix STB path and no PS please.

* Try to fix output on Windows tests.

* Call test from the right place.

* Remove some unnecessary output.

* Try just running the test.

* What is going on, why doesn't the test run?

* Try just running the test with PowerShell.

* Maybe I have the filename wrong?

* PowerShell makes me angry...

* Right, .exe is the suffix...

* I love PowerShell!

* Okay, forget PowerShell.

* Can we even run the test?

* Is it a DLL search path issue?

* Okay, I think this might work for Windows.

* Fix porting of new r2u/p3m workflow (hopefully).

* Fix possibly incorrect variable name.

* Reduce the number of macOS jobs.

* Fix name of job.

* Remove potentially unnecessary step.

* Document CI changes and reorganize jobs for better viewing.

* Remove invalid link.  (Awesome that the link check build picked this up.)
2025-02-14 20:22:13 -05:00
Ryan CurtinandDirk Eddelbuettel e30f83c028 Document RectangleTree and RTree (#3885)
* First attempt at documenting the RectangleTree.

* Add Insert() and Delete() to RectangleTree; they have a nicer user interface than what was previously there.

* Add R-tree documentation.

* Fix default arguments for RectangleTree typedefs.

* Fix some minor documentation display issues.

* Fix link.

* Fix links.

* Try to clarify what trees are a little bit.

* Apply suggestions from code review

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>

* Update doc/user/core/trees/r_tree.md

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>

---------

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>
2025-02-12 15:17:21 -05:00
Thomas Schenker b6ff6e0663 fix Trim() and TrimIf() (#3878)
* fix Trim and TrimIf

* restore original interface, use desciptive names for intermediate
results

* format

* make iterator types explicit
2025-02-09 00:23:48 +01:00
Dirk Eddelbuettel 1cd888f5d0 Use r2u for Linux continuous integration (#3889) 2025-02-07 06:50:23 -06:00
821a95ff56 Stb (#3823)
* Move STB internally, comment functions if not

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Comment for now STB including macros

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Modify CMake and tests accordingly

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the license and update the date.

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move STB to its own directory

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding the functrions of image resize and crop

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update the API not finished yet

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Start adding tests

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add flowers images for test

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Bring image from the coco dataset

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Include all of STB header in this file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix STB configs

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Clean CMakeLists and look for stb_resize

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make it compile with STB integrated

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix stb path

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the endif at the end of the file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update LICENSE.txt

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMakeLists.txt

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/config.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Adding the function and test, not finished

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove crop from this PR, and add tests

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update LICENSE.txt

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>

* Update CMakeLists.txt

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>

* merge master

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add @rcutin suggestion for stb

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Improve the logic to include edge cases

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the bundle that if we are using system stb

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make it possible to disable the entire build with STB

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the else if condition

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the else condition

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the tests accordindly

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add dummpy functions and complete the Resize function

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Reorder to see if this fix the problem

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the resize for a set of images

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add STATIC for resize and write

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix all the problem with this function

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Be able to resize N images easily

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Add the tests, already passing

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Use sheep instead of Umbrella

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix STB directory

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix Cmake and docs

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Apply comments from @rcurtin

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Integrate @rcurtin comments

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix tests and remove generated images

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Add docs

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Update the API with new resize version

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix to resize2

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Adding resize2

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Add the necessary fix to avoid linker errors

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add configs to allow correct repacking

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Redo the ResizeImages function

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Pack the images as tzr.bz2

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix the function calls and create an internal one

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make the message shorter to have under 80 chars

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Solve linter errors

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Solve linter error

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix linter issues

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Apply @rcurtin comments

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add an example usage of these two functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Apply @rcurtin comments

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Re-organize directories for STB

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Apply rcurtin comments

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Merge two resize functions into one

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Get rid of MLPACK_DISABLE_STB

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix forgetting docs

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update CMake/FindStbImage.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/FindStbImage.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/install.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/compile.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Apply comments from @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding the test to test if it is identical

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix image tests

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the example

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add the link and the patch to download the images

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the script and make all of them green

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove wget not needed

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Minor style fixes.

* Avoid temporary matrices, and test with multiple different types.

* Update src/mlpack/config.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update HISTORY.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Fix R build by including bundled STB headers in package.

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Signed-off-by: Omar Shrit <omar@shrit.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
Co-authored-by: Dirk Eddelbuettel <edd@debian.org>
2025-02-05 21:06:26 +01:00
Ryan CurtinandDirk Eddelbuettel 9fd815144d Add a cache to documentation check job (#3882)
* A first attempt at overhauling the documentation job with a cache.

* Actually remove files we don't need anymore.

* Fix output from local link checks to give it all at once.

* Add sparse matrices to the set of detected matrix types.

* Fix comparison condition.

* Make a pass to try and re-validate cached links that have not yet expired.

* Compile and link separately so that ccache can take effect.

* Be a little bit smarter about caching.

* Ensure libicu$SO is installed so 'stringi' can be used

Also collapse to remotes calls into one

* Fix style issues that cpplint 2 found (#3884)

* Try to workaround the libicu issue for now.

* Mention new dependency.

---------

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>
2025-02-04 08:04:42 -05:00
Ryan Curtin d45a955a3c Allow ragged sequences for RNN training and prediction (#3870)
* Add LinearRecurrent layer and tests.

* Update RecurrentLayer for correct BPTT and document API changes.

* Reimplement BPTT---correctly, this time.

* Fix RNN implementation and add tests.

* Fix and test LSTM.

* Fix BPTT implementation to use all time steps and add some more tests.

* Fix and tune recurrent sine tests.

* Fix serialization for LinearRecurrent.

* Fix compilation warning when serialization is not enabled.

* When I use the MSE I expect the mean squared error, not the squared error.  These reductions will need to be revisited at some point.

* Restore Reber grammar tests, revamp them, and tune other tests.

* Fix a few tests.

* Update HISTORY.

* Fix style issues.

* Fix one small behavioral change.

* Small patch to support ragged sequence lengths.

* Clean up ragged sequence code and add tests.

* Revert inadvertent changes to NegativeLogLikelihood.

* Fix style issues.

* Fix conditions so that we can serialize NNs even if we didn't define MLPACK_ENABLE_ANN_SERIALIZATION.
2025-02-02 12:10:53 +01:00
Ryan Curtin 6daac5027d Add documentation for Octree (#3880) 2025-01-28 05:47:21 +01:00
Ryan Curtin d9bfc67546 Fix style issues that cpplint 2 found (#3884) 2025-01-24 06:15:10 +01:00
Omar Shrit 04aafc3c47 Use Debug and Release variables from CMake (#3865)
* Use Debug and Release variables from CMake

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Bring back the debug option

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove automatically set options

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Document the new option and remove the deprecated ones

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix missing endif ()

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the history, typo and docs

Signed-off-by: Omar Shrit <omar@avontech.fr>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
2025-01-16 22:26:03 +01:00
Ryan Curtin 2697739cd1 Turn silent disabling of OpenMP into an actual compilation error (#3879) 2025-01-16 03:57:45 +01:00
Ryan Curtin d39d4929ac Fix RNNs (#3859)
* Add LinearRecurrent layer and tests.

* Update RecurrentLayer for correct BPTT and document API changes.

* Reimplement BPTT---correctly, this time.

* Fix RNN implementation and add tests.

* Fix and test LSTM.

* Fix BPTT implementation to use all time steps and add some more tests.

* Fix and tune recurrent sine tests.

* Fix serialization for LinearRecurrent.

* Fix compilation warning when serialization is not enabled.

* When I use the MSE I expect the mean squared error, not the squared error.  These reductions will need to be revisited at some point.

* Restore Reber grammar tests, revamp them, and tune other tests.

* Fix a few tests.

* Update HISTORY.

* Fix style issues.

* Fix one small behavioral change.

* Handle review comments.
2025-01-15 13:27:20 -05:00
Andrea Novellini 2661fa5425 Fix broken links (#3876) 2025-01-12 13:57:29 -05:00
Ryan Curtin 26e148e610 Update cache Github action to v4. (#3871) 2025-01-10 10:56:53 -06:00