polyfem / polysolve

Easy-to-use linear and non-linear solver
https://polyfem.github.io
MIT License
48 stars 16 forks source link

Accelerate support is broken #38

Open barracuda156 opened 1 year ago

barracuda156 commented 1 year ago
In file included from /System/Library/Frameworks/vecLib.framework/Headers/vecLib.h:22,
                 from /System/Library/Frameworks/Accelerate.framework/Headers/Accelerate.h:20,
                 from /opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:4,
                 from /opt/local/include/eigen3/Eigen/AccelerateSupport:47,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:9:
/System/Library/Frameworks/vecLib.framework/Headers/vecLibTypes.h:86:26: error: two or more data types in declaration of 'vBool32'
   86 |         typedef __vector bool int                 vBool32;
      |                          ^~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:10:44: error: 'SparseFactorization_t' has not been declared
   10 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:11:7: error: no default argument for 'EnforceSquare_'
   11 | class AccelerateImpl;
      |       ^~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:25:68: error: 'SparseFactorizationCholesk' was not declared in this scope
   25 | using AccelerateLLT = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationCholesky, true>;
      |                                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:25:101: error: template argument 3 is invalid
   25 | using AccelerateLLT = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationCholesky, true>;
      |                                                                                                     ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:39:69: error: 'SparseFactorizationLDLT' was not declared in this scope
   39 | using AccelerateLDLT = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLT, true>;
      |                                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:39:98: error: template argument 3 is invalid
   39 | using AccelerateLDLT = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLT, true>;
      |                                                                                                  ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:53:78: error: 'SparseFactorizationLDLTUnpivoted' was not declared in this scope
   53 | using AccelerateLDLTUnpivoted = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTUnpivoted, true>;
      |                                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:53:116: error: template argument 3 is invalid
   53 | using AccelerateLDLTUnpivoted = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTUnpivoted, true>;
      |                                                                                                                    ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:67:72: error: 'SparseFactorizationLDLTSBK' was not declared in this scope
   67 | using AccelerateLDLTSBK = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTSBK, true>;
      |                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:67:104: error: template argument 3 is invalid
   67 | using AccelerateLDLTSBK = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTSBK, true>;
      |                                                                                                        ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:81:72: error: 'SparseFactorizationLDLTTPP' was not declared in this scope
   81 | using AccelerateLDLTTPP = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTTPP, true>;
      |                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:81:104: error: template argument 3 is invalid
   81 | using AccelerateLDLTTPP = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTTPP, true>;
      |                                                                                                        ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:94:52: error: 'SparseFactorizationQR' was not declared in this scope
   94 | using AccelerateQR = AccelerateImpl<MatrixType, 0, SparseFactorizationQR, false>;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:94:80: error: template argument 3 is invalid
   94 | using AccelerateQR = AccelerateImpl<MatrixType, 0, SparseFactorizationQR, false>;
      |                                                                                ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:107:61: error: 'SparseFactorizationCholeskyAtA' was not declared in this scope
  107 | using AccelerateCholeskyAtA = AccelerateImpl<MatrixType, 0, SparseFactorizationCholeskyAtA, false>;
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:107:98: error: template argument 3 is invalid
  107 | using AccelerateCholeskyAtA = AccelerateImpl<MatrixType, 0, SparseFactorizationCholeskyAtA, false>;
      |                                                                                                  ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:127:11: error: 'SparseOpaqueSymbolicFactorization' does not name a type
  127 |   typedef SparseOpaqueSymbolicFactorization SymbolicFactorization;
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:130:37: error: 'SymbolicFactorization' was not declared in this scope; did you mean 'NumericFactorization'?
  130 |   typedef AccelFactorizationDeleter<SymbolicFactorization> SymbolicFactorizationDeleter;
      |                                     ^~~~~~~~~~~~~~~~~~~~~
      |                                     NumericFactorization
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:130:58: error: template argument 1 is invalid
  130 |   typedef AccelFactorizationDeleter<SymbolicFactorization> SymbolicFactorizationDeleter;
      |                                                          ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:138:56: error: 'DenseVector_Double' was not declared in this scope
  138 | struct SparseTypesTrait<double> : SparseTypesTraitBase<DenseVector_Double, DenseMatrix_Double, SparseMatrix_Double,
      |                                                        ^~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:138:76: error: 'DenseMatrix_Double' was not declared in this scope
  138 | struct SparseTypesTrait<double> : SparseTypesTraitBase<DenseVector_Double, DenseMatrix_Double, SparseMatrix_Double,
      |                                                                            ^~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:138:96: error: 'SparseMatrix_Double' was not declared in this scope; did you mean 'SparseMatrixBase'?
  138 | struct SparseTypesTrait<double> : SparseTypesTraitBase<DenseVector_Double, DenseMatrix_Double, SparseMatrix_Double,
      |                                                                                                ^~~~~~~~~~~~~~~~~~~
      |                                                                                                SparseMatrixBase
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:56: error: 'SparseOpaqueFactorization_Double' was not declared in this scope
  139 |                                                        SparseOpaqueFactorization_Double> {};
      |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:88: error: template argument 1 is invalid
  139 |                                                        SparseOpaqueFactorization_Double> {};
      |                                                                                        ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:88: error: template argument 2 is invalid
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:88: error: template argument 3 is invalid
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:88: error: template argument 4 is invalid
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:28: error: 'DenseVector_Float' was not declared in this scope; did you mean 'ConstVectorFloat'?
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                            ^~~~~~~~~~~~~~~~~
      |                            ConstVectorFloat
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp: In member function 'virtual void polysolve::LinearSolverHypre::factorize(const polysolve::StiffnessMatrix&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp:104:45: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
  104 |         HYPRE_IJMatrixGetObject(A, (void **)&parcsr_A);
      |                                             ^~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:47: error: 'DenseMatrix_Float' was not declared in this scope
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                                               ^~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:66: error: 'SparseMatrix_Float' was not declared in this scope; did you mean 'SparseMatrixBase'?
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                                                                  ^~~~~~~~~~~~~~~~~~
      |                                                                  SparseMatrixBase
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp: In member function 'virtual void polysolve::LinearSolverHypre::solve(Eigen::Ref<const Eigen::Matrix<double, -1, 1>, 0, Eigen::InnerStride<1> >, Eigen::Ref<Eigen::Matrix<double, -1, 1>, 0, Eigen::InnerStride<1> >)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp:221:45: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
  221 |         HYPRE_IJVectorGetObject(b, (void **)&par_b);
      |                                             ^~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp:224:45: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
  224 |         HYPRE_IJVectorGetObject(x, (void **)&par_x);
      |                                             ^~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:86: error: 'SparseOpaqueFactorization_Float' was not declared in this scope
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:117: error: template argument 1 is invalid
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                                                                                                                     ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:117: error: template argument 2 is invalid
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:117: error: template argument 3 is invalid
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:117: error: template argument 4 is invalid
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:148:44: error: 'SparseFactorization_t' has not been declared
  148 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:149:83: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  149 | class AccelerateImpl : public SparseSolverBase<AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_> > {
      |                                                                                   ^~~~~~~
      |                                                                                   Solve
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:149:106: error: template argument 3 is invalid
  149 | class AccelerateImpl : public SparseSolverBase<AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_> > {
      |                                                                                                          ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:149:108: error: template argument 1 is invalid
  149 | class AccelerateImpl : public SparseSolverBase<AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>  {
      |                                                                                                            
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:320:44: error: 'SparseFactorization_t' has not been declared
  320 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:321:41: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  321 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::compute(const MatrixType& a) {
      |                                         ^~~~~~~
      |                                         Solve
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:321:64: error: template argument 3 is invalid
  321 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::compute(const MatrixType& a) {
      |                                                                ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:321:81: error: 'MatrixType' does not name a type; did you mean 'MatrixType_'?
  321 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::compute(const MatrixType& a) {
      |                                                                                 ^~~~~~~~~~
      |                                                                                 MatrixType_
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h: In function 'void Eigen::compute(const int&)':
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:324:3: error: 'm_nRows' was not declared in this scope
  324 |   m_nRows = a.rows();
      |   ^~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:324:15: error: request for member 'rows' in 'a', which is of non-class type 'const int'
  324 |   m_nRows = a.rows();
      |               ^~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:325:3: error: 'm_nCols' was not declared in this scope
  325 |   m_nCols = a.cols();
      |   ^~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:325:15: error: request for member 'cols' in 'a', which is of non-class type 'const int'
  325 |   m_nCols = a.cols();
      |               ^~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:327:3: error: 'AccelSparseMatrix' was not declared in this scope; did you mean 'SparseMatrix'?
  327 |   AccelSparseMatrix A{};
      |   ^~~~~~~~~~~~~~~~~
      |   SparseMatrix
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:330:29: error: 'A' was not declared in this scope
  330 |   buildAccelSparseMatrix(a, A, columnStarts);
      |                             ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:330:3: error: there are no arguments to 'buildAccelSparseMatrix' that depend on a template parameter, so a declaration of 'buildAccelSparseMatrix' must be available [-fpermissive]
  330 |   buildAccelSparseMatrix(a, A, columnStarts);
      |   ^~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:330:3: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:332:3: error: there are no arguments to 'doAnalysis' that depend on a template parameter, so a declaration of 'doAnalysis' must be available [-fpermissive]
  332 |   doAnalysis(A);
      |   ^~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:334:7: error: 'm_symbolicFactorization' was not declared in this scope
  334 |   if (m_symbolicFactorization) doFactorization(A);
      |       ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:334:32: error: there are no arguments to doFactorization' that depend on a template parameter, so a declaration of 'doFactorization' must be available [-fpermissive]
  334 |   if (m_symbolicFactorization) doFactorization(A);
      |                                ^~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:336:3: error: 'm_isInitialized' was not declared in this scope
  336 |   m_isInitialized = true;
      |   ^~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h: At global scope:
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:345:44: error: 'SparseFactorization_t' has not been declared
  345 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:346:41: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  346 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::analyzePattern(const MatrixType& a) {
      |                                         ^~~~~~~
      |                                         Solve
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:346:64: error: template argument 3 is invalid
  346 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::analyzePattern(const MatrixType& a) {
      |                                                                ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:346:88: error: 'MatrixType' does not name a type; did you mean 'MatrixType_'?
  346 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::analyzePattern(const MatrixType& a) {
      |                                                                                        ^~~~~~~~~~
      |                                                                                        MatrixType_
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h: In function 'void Eigen::analyzePattern(const int&)':
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:349:3: error: 'm_nRows' was not declared in this scope
  349 |   m_nRows = a.rows();
      |   ^~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:349:15: error: request for member 'rows' in 'a', which is of non-class type 'const int'
  349 |   m_nRows = a.rows();
      |               ^~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:350:3: error: 'm_nCols' was not declared in this scope
  350 |   m_nCols = a.cols();
      |   ^~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:350:15: error: request for member 'cols' in 'a', which is of non-class type 'const int'
  350 |   m_nCols = a.cols();
      |               ^~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:352:3: error: 'AccelSparseMatrix' was not declared in this scope; did you mean 'SparseMatrix'?
  352 |   AccelSparseMatrix A{};
      |   ^~~~~~~~~~~~~~~~~
      |   SparseMatrix
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:355:29: error: 'A' was not declared in this scope
  355 |   buildAccelSparseMatrix(a, A, columnStarts);
      |                             ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:355:3: error: there are no arguments to 'buildAccelSparseMatrix' that depend on a template parameter, so a declaration of 'buildAccelSparseMatrix' must be available [-fpermissive]
  355 |   buildAccelSparseMatrix(a, A, columnStarts);
      |   ^~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:357:3: error: there are no arguments to 'doAnalysis' that depend on a template parameter, so a declaration of 'doAnalysis' must be available [-fpermissive]
  357 |   doAnalysis(A);
      |   ^~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:359:3: error: 'm_isInitialized' was not declared in this scope
  359 |   m_isInitialized = true;
      |   ^~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h: At global scope:
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:368:44: error: 'SparseFactorization_t' has not been declared
  368 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:369:41: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  369 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::factorize(const MatrixType& a) {
      |                                         ^~~~~~~
      |                                         Solve
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:369:64: error: template argument 3 is invalid
  369 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::factorize(const MatrixType& a) {
      |                                                                ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:369:83: error: 'MatrixType' does not name a type; did you mean 'MatrixType_'?
  369 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::factorize(const MatrixType& a) {
      |                                                                                   ^~~~~~~~~~
      |                                                                                   MatrixType_
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h: In function 'void Eigen::factorize(const int&)':
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:375:3: error: 'AccelSparseMatrix' was not declared in this scope; did you mean 'SparseMatrix'?
  375 |   AccelSparseMatrix A{};
      |   ^~~~~~~~~~~~~~~~~
      |   SparseMatrix
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:378:29: error: 'A' was not declared in this scope
  378 |   buildAccelSparseMatrix(a, A, columnStarts);
      |                             ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:378:3: error: there are no arguments to 'buildAccelSparseMatrix' that depend on a template parameter, so a declaration of 'buildAccelSparseMatrix' must be available [-fpermissive]
  378 |   buildAccelSparseMatrix(a, A, columnStarts);
      |   ^~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:380:3: error: there are no arguments to 'doFactorization' that depend on a template parameter, so a declaration of 'doFactorization' must be available [-fpermissive]
  380 |   doFactorization(A);
      |   ^~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h: At global scope:
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:383:44: error: 'SparseFactorization_t' has not been declared
  383 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:385:41: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  385 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::_solve_impl(const MatrixBase<Rhs>& b,
      |                                         ^~~~~~~
      |                                         Solve
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:385:64: error: template argument 3 is invalid
  385 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::_solve_impl(const MatrixBase<Rhs>& b,
      |                                                                ^
/opt/local/include/eigen3/Eigen/src/AccelerateSupport/AccelerateSupport.h:385:6: error: too many template-parameter-lists
  385 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::_solve_impl(const MatrixBase<Rhs>& b,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp: In static member function 'static std::unique_ptr<polysolve::LinearSolver> polysolve::LinearSolver::create(const std::string&, const std::string&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:198:38: error: 'AccelerateLLT' was not declared in this scope
  198 |             RETURN_DIRECT_SOLVER_PTR(AccelerateLLT, "Eigen::AccelerateLLT");
      |                                      ^~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:124:57: note: in definition of macro 'RETURN_DIRECT_SOLVER_PTR'
  124 |         return std::make_unique<LinearSolverEigenDirect<EigenSolver< \
      |                                                         ^~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:24: error: template argument 1 is invalid
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |                        ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:24: note: in definition of macro 'RETURN_DIRECT_SOLVER_PTR'
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |                        ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:41: error: invalid operands of types '<unresolved overloaded function type>' and 'const char [21]' to binary 'operator>'
  124 |         return std::make_unique<LinearSolverEigenDirect<EigenSolver< \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     |
      |                     <unresolved overloaded function type>
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:198:13: note: in expansion of macro 'RETURN_DIRECT_SOLVER_PTR'
  198 |             RETURN_DIRECT_SOLVER_PTR(AccelerateLLT, "Eigen::AccelerateLLT");
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:202:38: error: 'AccelerateLDLT' was not declared in this scope
  202 |             RETURN_DIRECT_SOLVER_PTR(AccelerateLDLT, "Eigen::AccelerateLDLT");
      |                                      ^~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:124:57: note: in definition of macro 'RETURN_DIRECT_SOLVER_PTR'
  124 |         return std::make_unique<LinearSolverEigenDirect<EigenSolver< \
      |                                                         ^~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:24: error: template argument 1 is invalid
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |                        ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:24: note: in definition of macro 'RETURN_DIRECT_SOLVER_PTR'
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |                        ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:41: error: invalid operands of types '<unresolved overloaded function type>' and 'const char [22]' to binary 'operator>'
  124 |         return std::make_unique<LinearSolverEigenDirect<EigenSolver< \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     |
      |                     <unresolved overloaded function type>
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:202:13: note: in expansion of macro 'RETURN_DIRECT_SOLVER_PTR'
  202 |             RETURN_DIRECT_SOLVER_PTR(AccelerateLDLT, "Eigen::AccelerateLDLT");
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/polysolve.dir/src/polysolve/LinearSolver.cpp.o] Error 1
barracuda156 commented 1 year ago

Just in case, it is as broken with bundled Eigen3:

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp: In member function 'virtual void polysolve::LinearSolverHypre::factorize(const polysolve::StiffnessMatrix&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp:104:45: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
  104 |         HYPRE_IJMatrixGetObject(A, (void **)&parcsr_A);
      |                                             ^~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp: In member function 'virtual void polysolve::LinearSolverHypre::solve(Eigen::Ref<const Eigen::Matrix<double, -1, 1>, 0, Eigen::InnerStride<1> >, Eigen::Ref<Eigen::Matrix<double, -1, 1>, 0, Eigen::InnerStride<1> >)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp:221:45: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
  221 |         HYPRE_IJVectorGetObject(b, (void **)&par_b);
      |                                             ^~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolverHypre.cpp:224:45: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
  224 |         HYPRE_IJVectorGetObject(x, (void **)&par_x);
      |                                             ^~~~~~
In file included from /System/Library/Frameworks/vecLib.framework/Headers/vecLib.h:22,
                 from /System/Library/Frameworks/Accelerate.framework/Headers/Accelerate.h:20,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:4,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/AccelerateSupport:47,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:9:
/System/Library/Frameworks/vecLib.framework/Headers/vecLibTypes.h:86:26: error: two or more data types in declaration of 'vBool32'
   86 |         typedef __vector bool int                 vBool32;
      |                          ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:10:44: error: 'SparseFactorization_t' has not been declared
   10 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:11:7: error: no default argument for 'EnforceSquare_'
   11 | class AccelerateImpl;
      |       ^~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:25:68: error: 'SparseFactorizationCholesky' was not declared in this scope
   25 | using AccelerateLLT = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationCholesky, true>;
      |                                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:25:101: error: template argument 3 is invalid
   25 | using AccelerateLLT = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationCholesky, true>;
      |                                                                                                     ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:39:69: error: 'SparseFactorizationLDLT' was not declared in this scope
   39 | using AccelerateLDLT = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLT, true>;
      |                                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:39:98: error: template argument 3 is invalid
   39 | using AccelerateLDLT = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLT, true>;
      |                                                                                                  ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:53:78: error: 'SparseFactorizationLDLTUnpivoted' was not declared in this scope
   53 | using AccelerateLDLTUnpivoted = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTUnpivoted, true>;
      |                                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:53:116: error: template argument 3 is invalid
   53 | using AccelerateLDLTUnpivoted = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTUnpivoted, true>;
      |                                                                                                                    ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:67:72: error: 'SparseFactorizationLDLTSBK' was not declared in this scope
   67 | using AccelerateLDLTSBK = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTSBK, true>;
      |                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:67:104: error: template argument 3 is invalid
   67 | using AccelerateLDLTSBK = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTSBK, true>;
      |                                                                                                        ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:81:72: error: 'SparseFactorizationLDLTTPP' was not declared in this scope
   81 | using AccelerateLDLTTPP = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTTPP, true>;
      |                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:81:104: error: template argument 3 is invalid
   81 | using AccelerateLDLTTPP = AccelerateImpl<MatrixType, UpLo | Symmetric, SparseFactorizationLDLTTPP, true>;
      |                                                                                                        ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:94:52: error: 'SparseFactorizationQR' was not declared in this scope
   94 | using AccelerateQR = AccelerateImpl<MatrixType, 0, SparseFactorizationQR, false>;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:94:80: error: template argument 3 is invalid
   94 | using AccelerateQR = AccelerateImpl<MatrixType, 0, SparseFactorizationQR, false>;
      |                                                                                ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:107:61: error: 'SparseFactorizationCholeskyAtA' was not declared in this scope
  107 | using AccelerateCholeskyAtA = AccelerateImpl<MatrixType, 0, SparseFactorizationCholeskyAtA, false>;
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:107:98: error: template argument 3 is invalid
  107 | using AccelerateCholeskyAtA = AccelerateImpl<MatrixType, 0, SparseFactorizationCholeskyAtA, false>;
      |                                                                                                  ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:127:11: error: 'SparseOpaqueSymbolicFactorization' does not name a type
  127 |   typedef SparseOpaqueSymbolicFactorization SymbolicFactorization;
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:130:37: error: 'SymbolicFactorization' was not declared in this scope; did you mean 'NumericFactorization'?
  130 |   typedef AccelFactorizationDeleter<SymbolicFactorization> SymbolicFactorizationDeleter;
      |                                     ^~~~~~~~~~~~~~~~~~~~~
      |                                     NumericFactorization
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:130:58: error: template argument 1 is invalid
  130 |   typedef AccelFactorizationDeleter<SymbolicFactorization> SymbolicFactorizationDeleter;
      |                                                          ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:138:56: error: 'DenseVector_Double' was not declared in this scope
  138 | struct SparseTypesTrait<double> : SparseTypesTraitBase<DenseVector_Double, DenseMatrix_Double, SparseMatrix_Double,
      |                                                        ^~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:138:76: error: 'DenseMatrix_Double' was not declared in this scope
  138 | struct SparseTypesTrait<double> : SparseTypesTraitBase<DenseVector_Double, DenseMatrix_Double, SparseMatrix_Double,
      |                                                                            ^~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:138:96: error: 'SparseMatrix_Doubl' was not declared in this scope; did you mean 'SparseMatrixBase'?
  138 | struct SparseTypesTrait<double> : SparseTypesTraitBase<DenseVector_Double, DenseMatrix_Double, SparseMatrix_Double,
      |                                                                                                ^~~~~~~~~~~~~~~~~~~
      |                                                                                                SparseMatrixBase
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:56: error: 'SparseOpaqueFactorization_Double' was not declared in this scope
  139 |                                                        SparseOpaqueFactorization_Double> {};
      |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:88: error: template argument 1 is invalid
  139 |                                                        SparseOpaqueFactorization_Double> {};
      |                                                                                        ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:88: error: template argument 2 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:88: error: template argument 3 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:139:88: error: template argument 4 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:28: error: 'DenseVector_Float' was not declared in this scope; did you mean 'ConstVectorFloat'?
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                            ^~~~~~~~~~~~~~~~~
      |                            ConstVectorFloat
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:47: error: 'DenseMatrix_Float' was not declared in this scope
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                                               ^~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:66: error: 'SparseMatrix_Float' was not declared in this scope; did you mean 'SparseMatrixBase'?
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                                                                  ^~~~~~~~~~~~~~~~~~
      |                                                                  SparseMatrixBase
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:86: error: 'SparseOpaqueFactorization_Float' was not declared in this scope
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:117: error: template argument 1 is invalid
  143 |     : SparseTypesTraitBase<DenseVector_Float, DenseMatrix_Float, SparseMatrix_Float, SparseOpaqueFactorization_Float> {
      |                                                                                                                     ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:117: error: template argument 2 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:117: error: template argument 3 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:143:117: error: template argument 4 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:148:44: error: 'SparseFactorization_t' has not been declared
  148 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:149:83: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  149 | class AccelerateImpl : public SparseSolverBase<AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_> > {
      |                                                                                   ^~~~~~~
      |                                                                                   Solve
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:149:106: error: template argument 3 is invalid
  149 | class AccelerateImpl : public SparseSolverBase<AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_> > {
      |                                                                                                          ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:149:108: error: template argument 1 is invalid
  149 | class AccelerateImpl : public SparseSolverBase<AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>  {
      |                                                                                                            
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:320:44: error: 'SparseFactorization_t' has not been declared
  320 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:321:41: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  321 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::compute(const MatrixType& a) {
      |                                         ^~~~~~~
      |                                         Solve
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:321:64: error: template argument 3 is invalid
  321 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::compute(const MatrixType& a) {
      |                                                                ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:321:81: error: 'MatrixType' does not name a type; did you mean 'MatrixType_'?
  321 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::compute(const MatrixType& a) {
      |                                                                                 ^~~~~~~~~~
      |                                                                                 MatrixType_
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h: In function 'void Eigen::compute(const int&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:324:3: error: 'm_nRows' was not declared in this scope
  324 |   m_nRows = a.rows();
      |   ^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:324:15: error: request for member rows' in 'a', which is of non-class type 'const int'
  324 |   m_nRows = a.rows();
      |               ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:325:3: error: 'm_nCols' was not declared in this scope
  325 |   m_nCols = a.cols();
      |   ^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:325:15: error: request for member cols' in 'a', which is of non-class type 'const int'
  325 |   m_nCols = a.cols();
      |               ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:327:3: error: 'AccelSparseMatrix' was not declared in this scope; did you mean 'SparseMatrix'?
  327 |   AccelSparseMatrix A{};
      |   ^~~~~~~~~~~~~~~~~
      |   SparseMatrix
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:330:29: error: 'A' was not declared in this scope
  330 |   buildAccelSparseMatrix(a, A, columnStarts);
      |                             ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:330:3: error: there are no arguments to 'buildAccelSparseMatrix' that depend on a template parameter, so a declaration of 'buildAccelSparseMatrix' must be available [-fpermissive]
  330 |   buildAccelSparseMatrix(a, A, columnStarts);
      |   ^~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:330:3: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:332:3: error: there are no arguments to 'doAnalysis' that depend on a template parameter, so a declaration of 'doAnalysis' must be available [-fpermissive]
  332 |   doAnalysis(A);
      |   ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:334:7: error: 'm_symbolicFactorization' was not declared in this scope
  334 |   if (m_symbolicFactorization) doFactorization(A);
      |       ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:334:32: error: there are no arguments to 'doFactorization' that depend on a template parameter, so a declaration of 'doFactorization' must be available [-fpermissive]
  334 |   if (m_symbolicFactorization) doFactorization(A);
      |                                ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:336:3: error: 'm_isInitialized' was not declared in this scope
  336 |   m_isInitialized = true;
      |   ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h: At global scope:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:345:44: error: 'SparseFactorization_t' has not been declared
  345 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:346:41: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  346 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::analyzePattern(const MatrixType& a) {
      |                                         ^~~~~~~
      |                                         Solve
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:346:64: error: template argument 3 is invalid
  346 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::analyzePattern(const MatrixType& a) {
      |                                                                ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:346:88: error: 'MatrixType' does not name a type; did you mean 'MatrixType_'?
  346 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::analyzePattern(const MatrixType& a) {
      |                                                                                        ^~~~~~~~~~
      |                                                                                        MatrixType_
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h: In function 'void Eigen::analyzePattern(const int&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:349:3: error: 'm_nRows' was not declared in this scope
  349 |   m_nRows = a.rows();
      |   ^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:349:15: error: request for member rows' in 'a', which is of non-class type 'const int'
  349 |   m_nRows = a.rows();
      |               ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:350:3: error: 'm_nCols' was not declared in this scope
  350 |   m_nCols = a.cols();
      |   ^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:350:15: error: request for member cols' in 'a', which is of non-class type 'const int'
  350 |   m_nCols = a.cols();
      |               ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:352:3: error: 'AccelSparseMatrix' was not declared in this scope; did you mean 'SparseMatrix'?
  352 |   AccelSparseMatrix A{};
      |   ^~~~~~~~~~~~~~~~~
      |   SparseMatrix
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:355:29: error: 'A' was not declared in this scope
  355 |   buildAccelSparseMatrix(a, A, columnStarts);
      |                             ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:355:3: error: there are no arguments to 'buildAccelSparseMatrix' that depend on a template parameter, so a declaration of 'buildAccelSparseMatrix' must be available [-fpermissive]
  355 |   buildAccelSparseMatrix(a, A, columnStarts);
      |   ^~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:357:3: error: there are no arguments to 'doAnalysis' that depend on a template parameter, so a declaration of 'doAnalysis' must be available [-fpermissive]
  357 |   doAnalysis(A);
      |   ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:359:3: error: 'm_isInitialized' was not declared in this scope
  359 |   m_isInitialized = true;
      |   ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h: At global scope:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:368:44: error: 'SparseFactorization_t' has not been declared
  368 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:369:41: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  369 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::factorize(const MatrixType& a) {
      |                                         ^~~~~~~
      |                                         Solve
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:369:64: error: template argument 3 is invalid
  369 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::factorize(const MatrixType& a) {
      |                                                                ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:369:83: error: 'MatrixType' does not name a type; did you mean 'MatrixType_'?
  369 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::factorize(const MatrixType& a) {
      |                                                                                   ^~~~~~~~~~
      |                                                                                   MatrixType_
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h: In function 'void Eigen::factorize(const int&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:375:3: error: 'AccelSparseMatrix' was not declared in this scope; did you mean 'SparseMatrix'?
  375 |   AccelSparseMatrix A{};
      |   ^~~~~~~~~~~~~~~~~
      |   SparseMatrix
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:378:29: error: 'A' was not declared in this scope
  378 |   buildAccelSparseMatrix(a, A, columnStarts);
      |                             ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:378:3: error: there are no arguments to 'buildAccelSparseMatrix' that depend on a template parameter, so a declaration of 'buildAccelSparseMatrix' must be available [-fpermissive]
  378 |   buildAccelSparseMatrix(a, A, columnStarts);
      |   ^~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:380:3: error: there are no arguments to 'doFactorization' that depend on a template parameter, so a declaration of 'doFactorization' must be available [-fpermissive]
  380 |   doFactorization(A);
      |   ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h: At global scope:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:383:44: error: 'SparseFactorization_t' has not been declared
  383 | template <typename MatrixType_, int UpLo_, SparseFactorization_t Solver_, bool EnforceSquare_>
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:385:41: error: 'Solver_' was not declared in this scope; did you mean 'Solve'?
  385 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::_solve_impl(const MatrixBase<Rhs>& b,
      |                                         ^~~~~~~
      |                                         Solve
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:385:64: error: template argument 3 is invalid
  385 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::_solve_impl(const MatrixBase<Rhs>& b,
      |                                                                ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/.home/.cache/CPM/eigen/2e68522bbe453e136c9b281a06f112155cbeafd8/Eigen/src/AccelerateSupport/AccelerateSupport.h:385:6: error: too many template-parameter-lists
  385 | void AccelerateImpl<MatrixType_, UpLo_, Solver_, EnforceSquare_>::_solve_impl(const MatrixBase<Rhs>& b,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp: In static member function 'static std::unique_ptr<polysolve::LinearSolver> polysolve::LinearSolver::create(const std::string&, const std::string&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:198:38: error: 'AccelerateLLT' was not declared in this scope
  198 |             RETURN_DIRECT_SOLVER_PTR(AccelerateLLT, "Eigen::AccelerateLLT");
      |                                      ^~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:124:57: note: in definition of macro 'RETURN_DIRECT_SOLVER_PTR'
  124 |         return std::make_unique<LinearSolverEigenDirect<EigenSolver< \
      |                                                         ^~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:24: error: template argument 1 is invalid
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |                        ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:24: note: in definition of macro 'RETURN_DIRECT_SOLVER_PTR'
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |                        ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:41: error: invalid operands of types '<unresolved overloaded function type>' and 'const char [21]' to binary 'operator>'
  124 |         return std::make_unique<LinearSolverEigenDirect<EigenSolver< \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     |
      |                     <unresolved overloaded function type>
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:198:13: note: in expansion of macro 'RETURN_DIRECT_SOLVER_PTR'
  198 |             RETURN_DIRECT_SOLVER_PTR(AccelerateLLT, "Eigen::AccelerateLLT");
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:202:38: error: 'AccelerateLDLT' was not declared in this scope
  202 |             RETURN_DIRECT_SOLVER_PTR(AccelerateLDLT, "Eigen::AccelerateLDLT");
      |                                      ^~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:124:57: note: in definition of macro 'RETURN_DIRECT_SOLVER_PTR'
  124 |         return std::make_unique<LinearSolverEigenDirect<EigenSolver< \
      |                                                         ^~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:24: error: template argument 1 is invalid
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |                        ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:24: note: in definition of macro 'RETURN_DIRECT_SOLVER_PTR'
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |                        ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:125:41: error: invalid operands of types '<unresolved overloaded function type>' and 'const char [22]' to binary 'operator>'
  124 |         return std::make_unique<LinearSolverEigenDirect<EigenSolver< \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     |
      |                     <unresolved overloaded function type>
  125 |             polysolve::StiffnessMatrix>>>(Name);                     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/polysolve-91f7e3a4a44df4ca541cb46923d5593a49254efd/src/polysolve/LinearSolver.cpp:202:13: note: in expansion of macro 'RETURN_DIRECT_SOLVER_PTR'
  202 |             RETURN_DIRECT_SOLVER_PTR(AccelerateLDLT, "Eigen::AccelerateLDLT");
      |             ^~~~~~~~~~~~~~~~~~~~~~~~

make[2]: *** [CMakeFiles/polysolve.dir/src/polysolve/LinearSolver.cpp.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/build'
make[1]: *** [CMakeFiles/polysolve.dir/all] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_polysolve/polysolve/work/build'
make: *** [all] Error 2
jdumas commented 1 year ago

What version of macOS/compiler are you using here? It may be that the Eigen Accelerate wrapper only works with more recent version of the Accelerate solver.

barracuda156 commented 1 year ago

What version of macOS/compiler are you using here? It may be that the Eigen Accelerate wrapper only works with more recent version of the Accelerate solver.

macOS 10.6, gcc 12.3.0. So yes, Accelerate is not the latest, but in most cases it works fine.

I do not think this is an Eigen3 problem, since we have some ports which use Eigen3 together with Accelerate (choice depends on the system and can be overridden, but older systems actually default to Accelerate), and that works with my system and compiler (I maintain some of those ports, so it is tested). For example, HIOP: https://ports.macports.org/port/hiop/details (I verified now it is linked to Accelerate).

jdumas commented 1 year ago

When I read the documentation of Accelerate for the error messages you reported, I see e.g. that vBool32 requires macOS 10.9+, or that SparseFactorization_t requires macOS 10.13+. That seems more like a Eigen problem than a Polysolve problem to be honest. I tried to look at how HIOP uses Accelerate, but I couldn't find any reference in the code.

barracuda156 commented 1 year ago

Eigen3 on its own certainly works on MacOS at least back to 10.5. It won’t use full vectorization on CPUs using ISA below 2.06 since those do not support VSX (perhaps some Altivec code is still used whenever supported by hardware). I am not sure what macOS uses on Intel, but from what I understand, vector implementations are very different.

P. S. I need to check docs for older Accelerate and vecLibFort, what specifically was unsupported. I think a few Lapack functions were added rather recently, so those won’t be found and will need an alternative implementation like OpenBLAS.

jdumas commented 1 year ago

Do you have a MWE project with CMake + .cpp using the Eigen::AccelerateLLT and Eigen::AccelerateLDLT solvers that works on macOS 10.5? The only thing we're doing in Polysolve is really call the vanilla Eigen Accelerate wrapper for now.

barracuda156 commented 1 year ago

@jdumas If you could name a couple of specific projects that do use named functionality, I will see if they build and work on PowerPC. (I just do not know which inside parts of Eigen ports use.)

jdumas commented 1 year ago

I think a simple main.cpp that uses both Eigen::AccelerateLLT and Eigen::AccelerateLDLT to solve a random system would be enough to see if it compiles correctly or not.