BHoM / BHoM_Engine

Internal manipulation of the BHoM
GNU Lesser General Public License v3.0
26 stars 13 forks source link

Geometry_Engine: Singular Value Decomposition implemented and applied to FitLine #3280

Closed pawelbaran closed 6 months ago

pawelbaran commented 6 months ago

Issues addressed by this PR

Closes #3278

Test files

General tests are available here Edge cases covered here

Changelog

Additional comments

Issue originally raised by @peterjamesnugent, but he is still on leave, so adding @FraserGreenroyd and @albinber - please let it hang and leave it to the originator if not enough head space, no rush on this one 👍

EDIT: running into more and more issues with line fitting, I started gathering edge cases. I spent lots of effort trying to get them all covered using the existing analytical solution, but failed, which led me to rewrite FitLine method entirely by switching to numerical solution and adding an implementation of Singular Value Decomposition, inspired by this and that. Now the method is much more robust, which can be seen in the test files.

A follow-up feature would be https://github.com/BHoM/BHoM_Engine/issues/3287.

tolerance input to be removed from FitLine in a separate PR, see https://github.com/BHoM/BHoM_Engine/issues/3288.

pawelbaran commented 6 months ago

@BHoMBot check required

bhombot-ci[bot] commented 6 months ago
@pawelbaran to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `core` - check `null-handling` - check `serialisation` - check `versioning` - check `installer`
pawelbaran commented 6 months ago

@BHoMBot check compliance

bhombot-ci[bot] commented 6 months ago
@pawelbaran to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `branch-compliance` - check `dataset-compliance` - check `copyright-compliance`
bhombot-ci[bot] commented 6 months ago
FAO: @FraserGreenroyd @pawelbaran is seeking dispensation on this Pull Request to skip a required check. Please can you provide authorisation for the check to be skipped, or provide assistance as appropriate. The check they wish to have dispensation on is code-compliance. If you are providing dispensation on this occasion, please reply with: > @BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. `21690504985`
bhombot-ci[bot] commented 6 months ago
FAO: @FraserGreenroyd @pawelbaran is seeking dispensation on this Pull Request to skip a required check. Please can you provide authorisation for the check to be skipped, or provide assistance as appropriate. The check they wish to have dispensation on is code-compliance. If you are providing dispensation on this occasion, please reply with: > @BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. `21690504985`
pawelbaran commented 6 months ago

@BHoMBot check compliance

bhombot-ci[bot] commented 6 months ago
@pawelbaran to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `branch-compliance` - check `dataset-compliance` - check `copyright-compliance`
bhombot-ci[bot] commented 6 months ago
FAO: @FraserGreenroyd @pawelbaran is seeking dispensation on this Pull Request to skip a required check. Please can you provide authorisation for the check to be skipped, or provide assistance as appropriate. The check they wish to have dispensation on is documentation-compliance. If you are providing dispensation on this occasion, please reply with: > @BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. `21690575707`
pawelbaran commented 6 months ago

@FraserGreenroyd I requested dispensation against document compliance because it seems to be a bug on the side of the bot.

pawelbaran commented 6 months ago

@BHoMBot check required

bhombot-ci[bot] commented 6 months ago
@pawelbaran to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `core` - check `null-handling` - check `serialisation` - check `versioning` - check `installer` There are 9 requests in the queue ahead of you.
bhombot-ci[bot] commented 6 months ago
The check `code-compliance` has already been run previously and recorded as a successful check. This check has not been run again at this time.
FraserGreenroyd commented 6 months ago

@BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. 21690575707

bhombot-ci[bot] commented 6 months ago
@FraserGreenroyd I have now provided a passing check on reference `21690575707` as requested.
FraserGreenroyd commented 6 months ago

@BHoMBot check ready-to-merge

bhombot-ci[bot] commented 6 months ago
@FraserGreenroyd to confirm, the following actions are now queued: - check `ready-to-merge`
FraserGreenroyd commented 6 months ago

@BHoMBot this is a DevOps instruction. I am requesting neutral checks on: unit-tests

bhombot-ci[bot] commented 6 months ago
@FraserGreenroyd I have provided neutral checks to the checks requested. These checks will need to be run properly to obtain full results.
bhombot-ci[bot] commented 6 months ago
FAO: @FraserGreenroyd @FraserGreenroyd is seeking dispensation on this Pull Request to skip a required check. Please can you provide authorisation for the check to be skipped, or provide assistance as appropriate. The check they wish to have dispensation on is documentation-compliance. If you are providing dispensation on this occasion, please reply with: > @BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. `21691286837`
FraserGreenroyd commented 6 months ago

@BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. 21691286837

bhombot-ci[bot] commented 6 months ago
@FraserGreenroyd I have now provided a passing check on reference `21691286837` as requested.