NIRALUser / GROUPS

Group wise registration for 3d-models
Apache License 2.0
0 stars 11 forks source link

Remove LAPACK dependency #40

Closed Connor-Bowley closed 1 year ago

Connor-Bowley commented 1 year ago

It am unable to find where lapack is being used in this extension, and having LAPACK as a dependency is a bit of overhead with needing fortran and all.

styner commented 1 year ago

I don't think GROUPS is needing LAPACK (not 100% sure), this might be historically in there as the SPHARM-PDM extension needs LAPACK (and GROUPS usually follows SPHARM-PDM)

sjh26 commented 1 year ago

SPHARM-PDM specifies its own LAPACK dependency, so it shouldn't be needed here as well.

jcfr commented 1 year ago

The GroupwiseRegistration explicitly requires the lapack function ssyev_ in the implementation of GroupwiseRegistration::eigenvalues:

https://github.com/NIRALUser/GROUPS/blob/1263afc128b4ebf4442695af569d1832432e3d18/Modules/CLI/Groups/GroupwiseRegistration.cpp#L1168-L1178

Related links:

jcfr commented 1 year ago

Use of GroupwiseRegistration::eigenvalues is the following:

GROUPS::main
  -> GroupwiseRegistration::run
    -> GroupwiseRegistration::optimization
      -> cost_function::operator()
        -> GroupwiseRegistration::cost
          -> GroupwiseRegistration::entropy
            -> GroupwiseRegistration::eigenvalues
              -> ssyev_
jcfr commented 1 year ago

Closing. This was addressed by @allemangD replacing LAPACK ssyev with Eigen EigenSolver