Giter VIP home page Giter VIP logo

Comments (8)

tomstewart89 avatar tomstewart89 commented on August 20, 2024

Hey Juan,
It should be fine to use Arduino DUE. If you show me some code and the compiler error you're seeing I can probably help you resolve the problem.

from basiclinearalgebra.

juanjqo avatar juanjqo commented on August 20, 2024

Hi Tom,
Thank you for your answer.
I trying to compile this:

#include <BasicLinearAlgebra.h>
void setup() {
// put your setup code here, to run once:

}
void loop() {
// put your main code here, to run repeatedly:
}

When the board is MEGA or UNO for instance, everything is ok. But when the selected board is a DUE,
This happens:

example

Arduino: 1.8.5 (Windows 10), Board: "Arduino Due (Programming Port)"

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,

             from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:4:61: error: using typedef-name 'Matrix' after 'class'

template<int rows, int cols, class ElemT, class MemT> class Matrix;

                                                         ^

In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,

             from sketch\HowToUse.ino.cpp:1:

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: 'Matrix' has a previous declaration here

} Matrix;

^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,

             from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:1: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:66: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

                                                              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:124: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

                                                                                                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:180: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

                                                                                                                                                                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Add(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:28:15: error: 'struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:28:44: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];

                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:28:73: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];

                                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:34:1: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:34:71: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

                                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:34:129: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

                                                                                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:34:185: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

                                                                                                                                                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:38:15: error: 'struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:38:44: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];

                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:38:73: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];

                                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:1: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:85: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)

                                                                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:143: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)

                                                                                                                                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:213: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)

                                                                                                                                                                                                                 ^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,

             from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:52:19: error: 'struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:52:55: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];

                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:52:80: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];

                                                                            ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:55:19: error: 'struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:55:56: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];

                                                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:55:85: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];

                                                                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:78:87: error: 'Matrix' is not a template

template<int rows, int cols, class ParentMemT, class ElemT = float> using RefMatrix = Matrix<rows, cols, ElemT, Ref<ElemT,ParentMemT> >;

                                                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:95:68: error: 'Matrix' is not a template

template<int rows, int cols, class ElemT = float> using Identity = Matrix<rows, cols, ElemT, Iden >;

                                                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:154:94: error: 'Matrix' is not a template

template<int rows, int cols, int tableSize = cols, class ElemT = float> using SparseMatrix = Matrix<rows, cols, ElemT, Sparse<cols, tableSize, ElemT> >;

                                                                                          ^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:20:99: error: using typedef-name 'Matrix' after 'class'

template<int rows, int cols = 1, class ElemT = float, class MemT = Array<rows,cols,ElemT> > class Matrix

                                                                                               ^

In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,

             from sketch\HowToUse.ino.cpp:1:

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: 'Matrix' has a previous declaration here

} Matrix;

^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:71:14: error: expected initializer before '<' token

ElemT &Matrix<rows,cols,ElemT,MemT>::operator()(int row, int col) const

          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:78:1: error: 'Matrix' is not a template

Matrix<height,width,ElemT,Ref<ElemT,MemT> > Matrix<rows,cols,ElemT,MemT>::Submatrix(Range rowRange, Range colRange) const

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:78:45: error: too many template-parameter-lists

Matrix<height,width,ElemT,Ref<ElemT,MemT> > Matrix<rows,cols,ElemT,MemT>::Submatrix(Range rowRange, Range colRange) const

                                         ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:88:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator=(const Matrix<rows,cols,opElemT,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:88:30: error: too many template-parameter-lists

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator=(const Matrix<rows,cols,opElemT,opMemT> &obj)

                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:98:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator=(ElemT arr[rows][cols])

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:98:37: error: expected initializer before '<' token

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator=(ElemT arr[rows][cols])

                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:108:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::Fill(const ElemT &val)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:108:37: error: expected initializer before '<' token

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::Fill(const ElemT &val)

                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:121:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator+(const Matrix<rows,cols,opElemT,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:121:49: error: too many template-parameter-lists

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator+(const Matrix<rows,cols,opElemT,opMemT> &obj)

                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:131:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator+=(const Matrix<rows,cols,opElemT,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:131:30: error: too many template-parameter-lists

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator+=(const Matrix<rows,cols,opElemT,opMemT> &obj)

                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:1: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:47: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

                                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:86: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

                                                                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:123: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

                                                                                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Add(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:143:15: error: 'struct Matrix' has no member named 'delegate'

         C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:143:33: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);

                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:143:51: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);

                                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:152:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator-(const Matrix<rows,cols,opElemT,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:152:49: error: too many template-parameter-lists

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator-(const Matrix<rows,cols,opElemT,opMemT> &obj)

                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:162:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator-=(const Matrix<rows,cols,opElemT,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:162:30: error: too many template-parameter-lists

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator-=(const Matrix<rows,cols,opElemT,opMemT> &obj)

                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:170:1: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,retMemT> &Subtract(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:170:52: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,retMemT> &Subtract(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

                                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:170:91: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,retMemT> &Subtract(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

                                                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:170:128: error: 'Matrix' is not a template

Matrix<rows,cols,retElemT,retMemT> &Subtract(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

                                                                                                                            ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:18: error: no match for call to '(Matrix) (int&, int&)'

         C(i,j) = A(i,j) - B(i,j);

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:27: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) - B(i,j);

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:36: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) - B(i,j);

                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:183:1: error: 'Matrix' is not a template

Matrix<rows,operandCols,ElemT,Array<rows,operandCols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator*(const Matrix<cols,operandCols,opElemT,opMemT> &operand)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:183:63: error: too many template-parameter-lists

Matrix<rows,operandCols,ElemT,Array<rows,operandCols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator*(const Matrix<cols,operandCols,opElemT,opMemT> &operand)

                                                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:193:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator*=(const Matrix<rows,cols,opElemT,opMemT> &operand)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:193:30: error: too many template-parameter-lists

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator*=(const Matrix<rows,cols,opElemT,opMemT> &operand)

                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:1: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:59: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)

                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:98: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)

                                                                                              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:142: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)

                                                                                                                                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:212:19: error: 'struct Matrix' has no member named 'delegate'

             C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:212:37: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);

                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:212:55: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);

                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:215:19: error: 'struct Matrix' has no member named 'delegate'

             C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:215:38: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);

                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:215:56: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);

                                                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:224:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator-()

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:224:55: error: expected initializer before '<' token

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator-()

                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:238:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator*(ElemT k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:238:55: error: expected initializer before '<' token

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator*(ElemT k)

                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:247:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator*=(ElemT k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:247:37: error: expected initializer before '<' token

Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator*=(ElemT k)

                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:256:1: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,retMemT> &Scale(const Matrix<rows,cols,ElemT,MemT> &A, const opElemT &B, Matrix<rows,operandCols,retElemT,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:256:56: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,retMemT> &Scale(const Matrix<rows,cols,ElemT,MemT> &A, const opElemT &B, Matrix<rows,operandCols,retElemT,retMemT> &C)

                                                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:256:107: error: 'Matrix' is not a template

Matrix<rows,operandCols,retElemT,retMemT> &Scale(const Matrix<rows,cols,ElemT,MemT> &A, const opElemT &B, Matrix<rows,operandCols,retElemT,retMemT> &C)

                                                                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Scale(const Matrix&, const opElemT&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:260:18: error: no match for call to '(Matrix) (int&, int&)'

         C(i,j) = A(i,j) * B;

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:260:27: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) * B;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:268:1: error: 'Matrix' is not a template

Matrix<cols,rows,ElemT,Array<cols,rows,ElemT> > Matrix<rows,cols,ElemT,MemT>::Transpose()

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:268:55: error: expected initializer before '<' token

Matrix<cols,rows,ElemT,Array<cols,rows,ElemT> > Matrix<rows,cols,ElemT,MemT>::Transpose()

                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:1: error: 'Matrix' is not a template

Matrix<cols,rows,retElemT,retMemT> &Transpose(const Matrix<rows,cols,ElemT,MemT> &A, Matrix<cols,rows,retElemT,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:53: error: 'Matrix' is not a template

Matrix<cols,rows,retElemT,retMemT> &Transpose(const Matrix<rows,cols,ElemT,MemT> &A, Matrix<cols,rows,retElemT,retMemT> &C)

                                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:86: error: 'Matrix' is not a template

Matrix<cols,rows,retElemT,retMemT> &Transpose(const Matrix<rows,cols,ElemT,MemT> &A, Matrix<cols,rows,retElemT,retMemT> &C)

                                                                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Transpose(const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:284:18: error: no match for call to '(Matrix) (int&, int&)'

         C(j,i) = A(i,j);

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:284:27: error: no match for call to '(const Matrix) (int&, int&)'

         C(j,i) = A(i,j);

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:292:1: error: 'Matrix' is not a template

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::Inverse(int *res = NULL)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:292:55: error: expected initializer before '<' token

Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::Inverse(int *res = NULL)

                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:302:1: error: 'Matrix' is not a template

Matrix<dim,dim,ElemT,MemT> &Invert(Matrix<dim,dim,ElemT,MemT> &A, int *res = NULL)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:302:36: error: 'Matrix' is not a template

Matrix<dim,dim,ElemT,MemT> &Invert(Matrix<dim,dim,ElemT,MemT> &A, int *res = NULL)

                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Invert(Matrix&, int*)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:314:26: error: no match for call to '(Matrix) (int&, int&)'

         if(fabs(A(i,k)) >= tmp)

                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:316:33: error: no match for call to '(Matrix) (int&, int&)'

             tmp = fabs(A(i,k));

                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:322:23: error: no match for call to '(Matrix) (int&, int&)'

     if (A(pivrow,k) == 0.0f)

                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:332:28: error: no match for call to '(Matrix) (int&, int&)'

             tmp = A(k,j);

                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:333:22: error: no match for call to '(Matrix) (int&, int&)'

             A(k,j) = A(pivrow,j);

                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:333:36: error: no match for call to '(Matrix) (int&, int&)'

             A(k,j) = A(pivrow,j);

                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:334:27: error: no match for call to '(Matrix) (int&, int&)'

             A(pivrow,j) = tmp;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:339:27: error: no match for call to '(Matrix) (int&, int&)'

     tmp = 1.0f / A(k,k); // invert pivot element

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:340:14: error: no match for call to '(Matrix) (int&, int&)'

     A(k,k) = 1.0f;  // This element of input matrix becomes result matrix

          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:18: error: no match for call to '(Matrix) (int&, int&)'

         A(k,j) = A(k,j) * tmp;

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:27: error: no match for call to '(Matrix) (int&, int&)'

         A(k,j) = A(k,j) * tmp;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:351:28: error: no match for call to '(Matrix) (int&, int&)'

             tmp = A(i,k);

                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:352:22: error: no match for call to '(Matrix) (int&, int&)'

             A(i,k) = 0.0f;  // The other place where in matrix becomes result mat

                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:26: error: no match for call to '(Matrix) (int&, int&)'

                 A(i,j) = A(i,j) - A(k,j) * tmp;

                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:35: error: no match for call to '(Matrix) (int&, int&)'

                 A(i,j) = A(i,j) - A(k,j) * tmp;

                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:44: error: no match for call to '(Matrix) (int&, int&)'

                 A(i,j) = A(i,j) - A(k,j) * tmp;

                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:367:28: error: no match for call to '(Matrix) (int&, int&)'

             tmp = A(i,k);

                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:368:22: error: no match for call to '(Matrix) (int&, int&)'

             A(i,k) = A(i,pivrows[k]);

                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:1: error: 'Matrix' is not a template

Matrix<rows,cols+operandCols,ElemT,Array<rows,cols+operandCols,ElemT> > HorzCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,operandCols,opElemT,opMemT> &B)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:87: error: 'Matrix' is not a template

Matrix<rows,cols+operandCols,ElemT,Array<rows,cols+operandCols,ElemT> > HorzCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,operandCols,opElemT,opMemT> &B)

                                                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:126: error: 'Matrix' is not a template

Matrix<rows,cols+operandCols,ElemT,Array<rows,cols+operandCols,ElemT> > HorzCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,operandCols,opElemT,opMemT> &B)

                                                                                                                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix HorzCat(const Matrix&, const Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:385:5: error: 'Matrix' is not a template

 Matrix<rows,cols + operandCols,ElemT,Array<rows,cols + operandCols,ElemT> > ret;

 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:386:9: error: 'struct Matrix' has no member named 'Submatrix'

 ret.Submatrix(Range<rows>(0),Range<cols>(0)) = A;

     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:387:9: error: 'struct Matrix' has no member named 'Submatrix'

 ret.Submatrix(Range<rows>(0),Range<operandCols>(cols)) = B;

     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:1: error: 'Matrix' is not a template

Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > VertCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<operandRows,cols,opElemT,opMemT> &B)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:91: error: 'Matrix' is not a template

Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > VertCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<operandRows,cols,opElemT,opMemT> &B)

                                                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:130: error: 'Matrix' is not a template

Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > VertCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<operandRows,cols,opElemT,opMemT> &B)

                                                                                                                              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix VertCat(const Matrix&, const Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:395:5: error: 'Matrix' is not a template

 Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > ret;

 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:396:9: error: 'struct Matrix' has no member named 'Submatrix'

 ret.Submatrix(Range<rows>(0),Range<cols>(0)) = A;

     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:397:9: error: 'struct Matrix' has no member named 'Submatrix'

 ret.Submatrix(Range<operandRows>(rows),Range<cols>(0)) = B;

     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:426:38: error: 'Matrix' is not a template

Print &operator<<(Print &strm, const Matrix<rows,cols,ElemT,MemT> &obj)

                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Print& operator<<(Print&, const Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:435:28: error: no match for call to '(const Matrix) (int&, int&)'

         strm << obj(i,j) << ((j == cols - 1)? '}' : ',');

                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino: In function 'void setup()':

HowToUse:16: error: 'Matrix' is not a template

Matrix<3,3,float> A;

^

HowToUse:19: error: 'Matrix' is not a template

Matrix<3> v;

^

HowToUse:22: error: 'struct Matrix' has no member named 'Fill'

v.Fill(0);

 ^

HowToUse:25: error: no match for call to '(Matrix) (int, int)'

v(2,0) = 5.3;

    ^

HowToUse:26: error: no match for call to '(Matrix) (int)'

v(1) = 43.67; // you can also just write v(2) = 5.3; since v has only one column

  ^

HowToUse:30: error: no match for 'operator=' (operand types are 'Matrix' and 'float [3][3]')

A = arrayA;

 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:30:5: note: candidates are:

In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,

             from sketch\HowToUse.ino.cpp:1:

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: Matrix& Matrix::operator=(const Matrix&)

} Matrix;

^

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: no known conversion for argument 1 from 'float [3][3]' to 'const Matrix&'

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: Matrix& Matrix::operator=(Matrix&&)

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: no known conversion for argument 1 from 'float [3][3]' to 'Matrix&&'

HowToUse:34: error: 'Matrix' is not a template

Matrix<3,3> B(arrayB);

^

HowToUse:34: error: no matching function for call to 'Matrix::Matrix(float [3][3])'

Matrix<3,3> B(arrayB);

                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:34:23: note: candidates are:

In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,

             from sketch\HowToUse.ino.cpp:1:

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: Matrix::Matrix()

} Matrix;

^

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: candidate expects 0 arguments, 1 provided

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: constexpr Matrix::Matrix(const Matrix&)

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: no known conversion for argument 1 from 'float [3][3]' to 'const Matrix&'

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: constexpr Matrix::Matrix(Matrix&&)

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: no known conversion for argument 1 from 'float [3][3]' to 'Matrix&&'

HowToUse:37: error: 'Matrix' is not a template

Matrix<3,3> C = A + B;

^

HowToUse:37: error: no match for 'operator+' (operand types are 'Matrix' and 'Matrix')

Matrix<3,3> C = A + B;

                 ^

HowToUse:45: error: no matching function for call to 'Add(Matrix&, Matrix&, Matrix&)'

Add(A,B,C);

        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:45:12: note: candidates are:

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,

             from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:56: note: template<int rows, int cols, class ElemT, class opElemT, class retElemT> Matrix& Add(const Matrix&, const Matrix&, Matrix&)

Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)

                                                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:56: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:45:12: note: couldn't deduce template parameter 'rows'

Add(A,B,C);

        ^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:37: note: template<int rows, int cols, class ElemT, class MemT, class opElemT, class opMemT, class retElemT, class retMemT> Matrix& Add(const Matrix&, const Matrix&, Matrix&)

Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)

                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:37: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:45:12: note: couldn't deduce template parameter 'rows'

Add(A,B,C);

        ^

HowToUse:49: error: no match for 'operator-=' (operand types are 'Matrix' and 'Matrix')

C -= B;

 ^

HowToUse:52: error: no match for 'operator+=' (operand types are 'Matrix' and 'Matrix')

B += A;

 ^

HowToUse:56: error: 'Matrix' is not a template

Matrix<3,1> D = A * v;

^

HowToUse:56: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')

Matrix<3,1> D = A * v;

                 ^

HowToUse:59: error: no matching function for call to 'Multiply(Matrix&, Matrix&, Matrix&)'

Multiply(A,v,D);

             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:59:17: note: candidates are:

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,

             from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:70: note: template<int rows, int cols, int operandCols, class ElemT, class opElemT, class retElemT> Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)

Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)

                                                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:70: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:59:17: note: couldn't deduce template parameter 'rows'

Multiply(A,v,D);

             ^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:44: note: template<int rows, int cols, int operandCols, class ElemT, class MemT, class opElemT, class opMemT, class retElemT, class retMemT> Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)

Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)

                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:44: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:59:17: note: couldn't deduce template parameter 'rows'

Multiply(A,v,D);

             ^

HowToUse:62: error: 'Matrix' is not a template

Matrix<1,3> D_T = D.Transpose();

^

HowToUse:62: error: 'struct Matrix' has no member named 'Transpose'

Matrix<1,3> D_T = D.Transpose();

                   ^

HowToUse:67: error: 'Matrix' is not a template

Matrix<3,3> C_T;

^

HowToUse:68: error: no matching function for call to 'Transpose(Matrix&, Matrix&)'

Transpose(C,C_T);

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:68:18: note: candidate is:

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:37: note: template<int rows, int cols, class ElemT, class MemT, class retElemT, class retMemT> Matrix& Transpose(const Matrix&, Matrix&)

Matrix<cols,rows,retElemT,retMemT> &Transpose(const Matrix<rows,cols,ElemT,MemT> &A, Matrix<cols,rows,retElemT,retMemT> &C)

                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:37: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:68:18: note: couldn't deduce template parameter 'rows'

Transpose(C,C_T);

              ^

HowToUse:71: error: 'Matrix' is not a template

Matrix<3,3> C_inv = C.Inverse();

^

HowToUse:71: error: 'struct Matrix' has no member named 'Inverse'

Matrix<3,3> C_inv = C.Inverse();

                     ^

HowToUse:76: error: 'struct Matrix' has no member named 'Inverse'

C_inv = C.Inverse(&res); // after this call res will be 0 if the inversion was successful and non-zero otherwise.

         ^

HowToUse:79: error: no matching function for call to 'Invert(Matrix&)'

Invert(C);

       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:79:11: note: candidate is:

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:302:29: note: template<int dim, class ElemT, class MemT> Matrix& Invert(Matrix&, int*)

Matrix<dim,dim,ElemT,MemT> &Invert(Matrix<dim,dim,ElemT,MemT> &A, int *res = NULL)

                         ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:302:29: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:79:11: note: couldn't deduce template parameter 'dim'

Invert(C);

       ^

HowToUse:82: error: 'Matrix' is not a template

Matrix<3,6> AleftOfB = HorzCat(A,B);

^

HowToUse:82: error: no matching function for call to 'HorzCat(Matrix&, Matrix&)'

Matrix<3,6> AleftOfB = HorzCat(A,B);

                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:82:37: note: candidate is:

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:73: note: template<int rows, int cols, int operandCols, class ElemT, class MemT, class opElemT, class opMemT> Matrix HorzCat(const Matrix&, const Matrix&)

Matrix<rows,cols+operandCols,ElemT,Array<rows,cols+operandCols,ElemT> > HorzCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,operandCols,opElemT,opMemT> &B)

                                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:73: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:82:37: note: couldn't deduce template parameter 'rows'

Matrix<3,6> AleftOfB = HorzCat(A,B);

                                 ^

HowToUse:85: error: 'Matrix' is not a template

Matrix<6,3> AonTopOfB = VertCat(A,B);

^

HowToUse:85: error: no matching function for call to 'VertCat(Matrix&, Matrix&)'

Matrix<6,3> AonTopOfB = VertCat(A,B);

                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:85:38: note: candidate is:

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:77: note: template<int rows, int cols, int operandRows, class ElemT, class MemT, class opElemT, class opMemT> Matrix VertCat(const Matrix&, const Matrix&)

Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > VertCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<operandRows,cols,opElemT,opMemT> &B)

                                                                         ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:77: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:85:38: note: couldn't deduce template parameter 'rows'

Matrix<6,3> AonTopOfB = VertCat(A,B);

                                  ^

HowToUse:88: error: no match for call to '(Matrix) (int)'

Serial << "v(1): " << v(1) << '\n';

                        ^

HowToUse:91: error: no match for 'operator<<' (operand types are 'Print' and 'Matrix')

Serial << "B: " << B << '\n';

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:91:19: note: candidates are:

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:404:15: note: Print& operator<<(Print&, int)

inline Print &operator <<(Print &strm, const int obj)

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:404:15: note: no known conversion for argument 2 from 'Matrix' to 'int'

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:409:15: note: Print& operator<<(Print&, float)

inline Print &operator <<(Print &strm, const float obj)

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:409:15: note: no known conversion for argument 2 from 'Matrix' to 'float'

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:414:15: note: Print& operator<<(Print&, const char*)

inline Print &operator <<(Print &strm, const char *obj)

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:414:15: note: no known conversion for argument 2 from 'Matrix' to 'const char*'

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:419:15: note: Print& operator<<(Print&, char)

inline Print &operator <<(Print &strm, const char obj)

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:419:15: note: no known conversion for argument 2 from 'Matrix' to 'char'

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:426:8: note: template<int rows, int cols, class ElemT, class MemT> Print& operator<<(Print&, const Matrix&)

Print &operator<<(Print &strm, const Matrix<rows,cols,ElemT,MemT> &obj)

    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:426:8: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:91:22: note: couldn't deduce template parameter 'rows'

Serial << "B: " << B << '\n';

                  ^

HowToUse:94: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')

Serial << "identity matrix: " << AleftOfB * AonTopOfB - (A * A + B * B) + C * C.Inverse() << '\n';

                                         ^

HowToUse:94: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')

Serial << "identity matrix: " << AleftOfB * AonTopOfB - (A * A + B * B) + C * C.Inverse() << '\n';

                                                          ^

HowToUse:94: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')

Serial << "identity matrix: " << AleftOfB * AonTopOfB - (A * A + B * B) + C * C.Inverse() << '\n';

                                                                  ^

HowToUse:94: error: 'struct Matrix' has no member named 'Inverse'

Serial << "identity matrix: " << AleftOfB * AonTopOfB - (A * A + B * B) + C * C.Inverse() << '\n';

                                                                               ^

HowToUse:97: error: 'Matrix' is not a template

Matrix<3> x; Matrix<2> u; Matrix<3,2> G; Matrix<3,3> F; float dt;

^

HowToUse:97: error: 'Matrix' is not a template

Matrix<3> x; Matrix<2> u; Matrix<3,2> G; Matrix<3,3> F; float dt;

            ^

HowToUse:97: error: 'Matrix' is not a template

Matrix<3> x; Matrix<2> u; Matrix<3,2> G; Matrix<3,3> F; float dt;

                         ^

HowToUse:97: error: 'Matrix' is not a template

Matrix<3> x; Matrix<2> u; Matrix<3,2> G; Matrix<3,3> F; float dt;

                                        ^

HowToUse:98: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')

x += (F * x + G * u) * dt;

       ^

HowToUse:98: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')

x += (F * x + G * u) * dt;

               ^

exit status 1
'Matrix' is not a template

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

from basiclinearalgebra.

tomstewart89 avatar tomstewart89 commented on August 20, 2024

I've just put up a new version (v2.1) with a few changes that I've been working on over the last few months. Could you upgrade to 2.1 in library manager and let me know how you go? I'd say there's just some differences in the compilation settings between the two boards but to begin with this is worth a shot!

from basiclinearalgebra.

juanjqo avatar juanjqo commented on August 20, 2024

Hi Tom,
I updated to 2.1 version. However, the problem is present, yet.
example
Some advice? :(

Arduino: 1.8.5 (Windows 10), Board: "Arduino Due (Programming Port)"

Build options changed, rebuilding all
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:9:0,

             from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:4:48: error: using typedef-name 'Matrix' after 'class'

template<int rows, int cols, class MemT> class Matrix;

                                            ^

In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,

             from sketch\sketch_oct28a.ino.cpp:1:

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: 'Matrix' has a previous declaration here

} Matrix;

^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:9:0,

             from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:25:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:25:57: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:25:109: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

                                                                                                         ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:25:157: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

                                                                                                                                                         ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Add(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:29:15: error: 'struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:29:44: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];

                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:29:73: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];

                                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:35:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:35:62: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

                                                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:35:114: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

                                                                                                              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:35:162: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

                                                                                                                                                              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:39:15: error: 'struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:39:44: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];

                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:39:73: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];

                                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:45:1: error: 'Matrix' is not a template

Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:45:76: error: 'Matrix' is not a template

Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &C)

                                                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:45:128: error: 'Matrix' is not a template

Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &C)

                                                                                                                            ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:45:190: error: 'Matrix' is not a template

Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &C)

                                                                                                                                                                                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:53:19: error: 'struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:53:55: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];

                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:53:80: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];

                                                                            ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:56:19: error: 'struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:56:56: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];

                                                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:56:85: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];

                                                                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:62:75: error: 'Matrix' is not a template

template<int rows, int cols = 1, class ElemT = float> using ArrayMatrix = Matrix<rows,cols,Array<rows,cols,ElemT> >;

                                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:83:67: error: 'Matrix' is not a template

template<int rows, int cols, class ParentMemT > using RefMatrix = Matrix<rows,cols,Reference >;

                                                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:103:75: error: 'Matrix' is not a template

template<int rows, int cols = rows, class ElemT = float> using Identity = Matrix<rows,cols,Iden >;

                                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:119:69: error: 'Matrix' is not a template

template<int rows, int cols = 1, class ElemT = float> using Zeros = Matrix<rows,cols,Zero >;

                                                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:181:94: error: 'Matrix' is not a template

template<int rows, int cols, int tableSize = cols, class ElemT = float> using SparseMatrix = Matrix<rows,cols,Sparse<cols,tableSize,ElemT> >;

                                                                                          ^

In file included from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:43:78: error: using typedef-name 'Matrix' after 'class'

template<int rows, int cols = 1, class MemT = Array<rows,cols,float> > class Matrix

                                                                          ^

In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,

             from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,

             from sketch\sketch_oct28a.ino.cpp:1:

C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: 'Matrix' has a previous declaration here

} Matrix;

^

In file included from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:121:30: error: expected initializer before '<' token

typename MemT::elem_t &Matrix<rows,cols,MemT>::operator()(int row, int col) const

                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:129:1: error: 'Matrix' is not a template

Matrix<rowEnd-rowStart,colEnd-colStart,Reference > Matrix<rows,cols,MemT>::Submatrix(Slice<rowStart,rowEnd>, Slice<colStart,colEnd>) const

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:129:58: error: too many template-parameter-lists

Matrix<rowEnd-rowStart,colEnd-colStart,Reference > Matrix<rows,cols,MemT>::Submatrix(Slice<rowStart,rowEnd>, Slice<colStart,colEnd>) const

                                                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:136:1: error: 'Matrix' is not a template

Matrix<rows,cols,Reference > Matrix<rows,cols,MemT>::Ref() const

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:136:42: error: expected initializer before '<' token

Matrix<rows,cols,Reference > Matrix<rows,cols,MemT>::Ref() const

                                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:146:1: error: 'Matrix' is not a template

Matrix<rows,cols+operandCols,HorzCat<cols,MemT,opMemT> > Matrix<rows,cols,MemT>::operator||(const Matrix<rows,operandCols,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:146:58: error: too many template-parameter-lists

Matrix<rows,cols+operandCols,HorzCat<cols,MemT,opMemT> > Matrix<rows,cols,MemT>::operator||(const Matrix<rows,operandCols,opMemT> &obj)

                                                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:154:1: error: 'Matrix' is not a template

Matrix<rows+operandRows,cols,VertCat<rows,MemT,opMemT> > Matrix<rows,cols,MemT>::operator&&(const Matrix<operandRows,cols,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:154:58: error: too many template-parameter-lists

Matrix<rows+operandRows,cols,VertCat<rows,MemT,opMemT> > Matrix<rows,cols,MemT>::operator&&(const Matrix<operandRows,cols,opMemT> &obj)

                                                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:164:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator=(const Matrix<rows,cols,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:164:24: error: too many template-parameter-lists

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator=(const Matrix<rows,cols,opMemT> &obj)

                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator=(typename MemT::elem_t arr[rows][cols])

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:31: error: expected initializer before '<' token

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator=(typename MemT::elem_t arr[rows][cols])

                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:184:10: error: 'Matrix' is not a template

Inserter<Matrix<rows,cols,MemT> > Matrix<rows,cols,MemT>::operator<<(const typename MemT::elem_t &val)

      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:184:41: error: expected initializer before '<' token

Inserter<Matrix<rows,cols,MemT> > Matrix<rows,cols,MemT>::operator<<(const typename MemT::elem_t &val)

                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:191:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::Fill(const typename MemT::elem_t &val)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:191:31: error: expected initializer before '<' token

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::Fill(const typename MemT::elem_t &val)

                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:202:6: error: too many template-parameter-lists

void Matrix<rows,cols,MemT>::FillRowMajor(typename MemT::elem_t head, TAIL... tail)

  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:212:11: error: expected initializer before '<' token

int Matrix<rows,cols,MemT>::GetRowCount()

       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:218:11: error: expected initializer before '<' token

int Matrix<rows,cols,MemT>::GetColCount()

       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:227:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator+(const Matrix<rows,cols,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:227:59: error: too many template-parameter-lists

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator+(const Matrix<rows,cols,opMemT> &obj)

                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:237:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator+=(const Matrix<rows,cols,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:237:24: error: too many template-parameter-lists

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator+=(const Matrix<rows,cols,opMemT> &obj)

                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245:1: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245:38: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245:71: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

                                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245💯 error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

                                                                                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245:28: error: redefinition of 'template<int rows, int cols, class MemT, class opMemT, class retMemT> Matrix& Add(const Matrix&, const Matrix&, Matrix&)'

Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

                        ^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:9:0,

             from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:25:47: error: 'template<int rows, int cols, class ElemT, class opElemT, class retElemT> Matrix& Add(const Matrix&, const Matrix&, Matrix&)' previously declared here

Matrix<rows,cols,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

                                           ^

In file included from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Add(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:249:15: error: 'struct Matrix' has no member named 'delegate'

         C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);

           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:249:33: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);

                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:249:51: error: 'const struct Matrix' has no member named 'delegate'

         C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);

                                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:258:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-(const Matrix<rows,cols,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:258:59: error: too many template-parameter-lists

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-(const Matrix<rows,cols,opMemT> &obj)

                                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:268:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator-=(const Matrix<rows,cols,opMemT> &obj)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:268:24: error: too many template-parameter-lists

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator-=(const Matrix<rows,cols,opMemT> &obj)

                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:1: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:43: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

                                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:76: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

                                                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:105: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

                                                                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:28: error: redefinition of 'template<int rows, int cols, class MemT, class opMemT, class retMemT> Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)'

Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)

                        ^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:9:0,

             from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:35:47: error: 'template<int rows, int cols, class ElemT, class opElemT, class retElemT> Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)' previously declared here

Matrix<rows,cols,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)

                                           ^

In file included from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:18: error: no match for call to '(Matrix) (int&, int&)'

         C(i,j) = A(i,j) - B(i,j);

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:27: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) - B(i,j);

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:36: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) - B(i,j);

                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:289:1: error: 'Matrix' is not a template

Matrix<rows,operandCols,Array<rows,operandCols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator*(const Matrix<cols,operandCols,opMemT> &operand)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:289:73: error: too many template-parameter-lists

Matrix<rows,operandCols,Array<rows,operandCols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator*(const Matrix<cols,operandCols,opMemT> &operand)

                                                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:299:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator*=(const Matrix<rows,cols,opMemT> &operand)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:299:24: error: too many template-parameter-lists

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator*=(const Matrix<rows,cols,opMemT> &operand)

                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:1: error: 'Matrix' is not a template

Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:50: error: 'Matrix' is not a template

Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)

                                              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:83: error: 'Matrix' is not a template

Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)

                                                                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:119: error: 'Matrix' is not a template

Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)

                                                                                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:35: error: redefinition of 'template<int rows, int cols, int operandCols, class MemT, class opMemT, class retMemT> Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)'

Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)

                               ^

In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:9:0,

             from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:45:61: error: 'template<int rows, int cols, int operandCols, class ElemT, class opElemT, class retElemT> Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)' previously declared here

Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &C)

                                                         ^

In file included from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:0:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:318:19: error: 'struct Matrix' has no member named 'delegate'

             C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:318:37: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);

                                 ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:318:55: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);

                                                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:321:19: error: 'struct Matrix' has no member named 'delegate'

             C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);

               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:321:38: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);

                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:321:56: error: 'const struct Matrix' has no member named 'delegate'

             C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);

                                                    ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:330:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-()

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:330:65: error: expected initializer before '<' token

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-()

                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:1: error: 'Matrix' is not a template

Matrix<cols,rows,Trans > Matrix<rows,cols,MemT>::operator~()

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:38: error: expected initializer before '<' token

Matrix<cols,rows,Trans > Matrix<rows,cols,MemT>::operator~()

                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator+(const typename MemT::elem_t k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:65: error: expected initializer before '<' token

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator+(const typename MemT::elem_t k)

                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:364:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator+=(const typename MemT::elem_t k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:364:31: error: expected initializer before '<' token

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator+=(const typename MemT::elem_t k)

                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:372:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-(const typename MemT::elem_t k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:372:65: error: expected initializer before '<' token

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-(const typename MemT::elem_t k)

                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:381:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator-=(const typename MemT::elem_t k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:381:31: error: expected initializer before '<' token

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator-=(const typename MemT::elem_t k)

                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:389:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator*(const typename MemT::elem_t k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:389:65: error: expected initializer before '<' token

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator*(const typename MemT::elem_t k)

                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:398:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator*=(const typename MemT::elem_t k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:398:31: error: expected initializer before '<' token

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator*=(const typename MemT::elem_t k)

                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:406:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator/(const typename MemT::elem_t k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:406:65: error: expected initializer before '<' token

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator/(const typename MemT::elem_t k)

                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:415:1: error: 'Matrix' is not a template

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator/=(const typename MemT::elem_t k)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:415:31: error: expected initializer before '<' token

Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator/=(const typename MemT::elem_t k)

                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:424:1: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseAdd(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:424:49: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseAdd(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:424:108: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseAdd(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

                                                                                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& ElementwiseAdd(const Matrix&, const typename MemT::elem_t&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:428:18: error: no match for call to '(Matrix) (int&, int&)'

         C(i,j) = A(i,j) + B;

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:428:27: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) + B;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:435:1: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseSubtract(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:435:54: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseSubtract(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

                                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:435:113: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseSubtract(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

                                                                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& ElementwiseSubtract(const Matrix&, const typename MemT::elem_t&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:439:18: error: no match for call to '(Matrix) (int&, int&)'

         C(i,j) = A(i,j) - B;

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:439:27: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) - B;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:446:1: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseMultiply(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:446:54: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseMultiply(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

                                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:446:113: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseMultiply(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

                                                                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& ElementwiseMultiply(const Matrix&, const typename MemT::elem_t&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:450:18: error: no match for call to '(Matrix) (int&, int&)'

         C(i,j) = A(i,j) * B;

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:450:27: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) * B;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:457:1: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseDivide(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:457:52: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseDivide(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

                                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:457:111: error: 'Matrix' is not a template

Matrix<rows,cols,retMemT> &ElementwiseDivide(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)

                                                                                                           ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& ElementwiseDivide(const Matrix&, const typename MemT::elem_t&, Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:461:18: error: no match for call to '(Matrix) (int&, int&)'

         C(i,j) = A(i,j) / B;

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:461:27: error: no match for call to '(const Matrix) (int&, int&)'

         C(i,j) = A(i,j) / B;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:41: error: 'Matrix' is not a template

typename MemT::elem_t Determinant(const Matrix<dim,dim,MemT> &A)

                                     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'typename MemT::elem_t Determinant(const Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:476:27: error: 'const struct Matrix' has no member named 'delegate'

     Minor<MemT> del(A.delegate, i, 0);

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:477:9: error: 'Matrix' is not a template

     Matrix<dim-1,dim-1,Minor<MemT> > m(del);

     ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:480:32: error: no matching function for call to 'Determinant(Matrix&)'

         det = Determinant(m);

                            ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:480:32: note: candidate is:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:23: note: template<int dim, class MemT> typename MemT::elem_t Determinant(const Matrix&)

typename MemT::elem_t Determinant(const Matrix<dim,dim,MemT> &A)

                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:23: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:480:32: note: couldn't deduce template parameter 'dim'

         det = Determinant(m);

                            ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:33: error: no matching function for call to 'Determinant(Matrix&)'

         det += Determinant(m) * (i % 2? -A(i,0) : A(i,0));

                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:33: note: candidate is:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:23: note: template<int dim, class MemT> typename MemT::elem_t Determinant(const Matrix&)

typename MemT::elem_t Determinant(const Matrix<dim,dim,MemT> &A)

                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:23: note: template argument deduction/substitution failed:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:33: note: couldn't deduce template parameter 'dim'

         det += Determinant(m) * (i % 2? -A(i,0) : A(i,0));

                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:51: error: no match for call to '(const Matrix) (int&, int)'

         det += Determinant(m) * (i % 2? -A(i,0) : A(i,0));

                                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:60: error: no match for call to '(const Matrix) (int&, int)'

         det += Determinant(m) * (i % 2? -A(i,0) : A(i,0));

                                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:489:35: error: 'Matrix' is not a template

typename MemT::elem_t Determinant(Matrix<2,2,MemT> &A)

                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'typename MemT::elem_t Determinant(Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:491:17: error: no match for call to '(Matrix) (int, int)'

 return A(0,0) * A(1,1) - A(1,0) * A(0,1);

             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:491:26: error: no match for call to '(Matrix) (int, int)'

 return A(0,0) * A(1,1) - A(1,0) * A(0,1);

                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:491:35: error: no match for call to '(Matrix) (int, int)'

 return A(0,0) * A(1,1) - A(1,0) * A(0,1);

                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:491:44: error: no match for call to '(Matrix) (int, int)'

 return A(0,0) * A(1,1) - A(1,0) * A(0,1);

                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:497:1: error: 'Matrix' is not a template

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::Inverse(int *res)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:497:65: error: expected initializer before '<' token

Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::Inverse(int *res)

                                                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:507:1: error: 'Matrix' is not a template

Matrix<dim,dim,MemT> &Invert(Matrix<dim,dim,MemT> &A, int *res = NULL)

^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:507:30: error: 'Matrix' is not a template

Matrix<dim,dim,MemT> &Invert(Matrix<dim,dim,MemT> &A, int *res = NULL)

                          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Invert(Matrix&, int*)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:519:26: error: no match for call to '(Matrix) (int&, int&)'

         if(fabs(A(i,k)) >= tmp)

                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:521:33: error: no match for call to '(Matrix) (int&, int&)'

             tmp = fabs(A(i,k));

                             ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:527:23: error: no match for call to '(Matrix) (int&, int&)'

     if (A(pivrow,k) == 0.0f)

                   ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:537:28: error: no match for call to '(Matrix) (int&, int&)'

             tmp = A(k,j);

                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:538:22: error: no match for call to '(Matrix) (int&, int&)'

             A(k,j) = A(pivrow,j);

                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:538:36: error: no match for call to '(Matrix) (int&, int&)'

             A(k,j) = A(pivrow,j);

                                ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:539:27: error: no match for call to '(Matrix) (int&, int&)'

             A(pivrow,j) = tmp;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:544:27: error: no match for call to '(Matrix) (int&, int&)'

     tmp = 1.0f / A(k,k); // invert pivot element

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:545:14: error: no match for call to '(Matrix) (int&, int&)'

     A(k,k) = 1.0f;  // This element of input matrix becomes result matrix

          ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:549:18: error: no match for call to '(Matrix) (int&, int&)'

         A(k,j) = A(k,j) * tmp;

              ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:549:27: error: no match for call to '(Matrix) (int&, int&)'

         A(k,j) = A(k,j) * tmp;

                       ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:556:28: error: no match for call to '(Matrix) (int&, int&)'

             tmp = A(i,k);

                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:557:22: error: no match for call to '(Matrix) (int&, int&)'

             A(i,k) = 0.0f;  // The other place where in matrix becomes result mat

                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:560:26: error: no match for call to '(Matrix) (int&, int&)'

                 A(i,j) = A(i,j) - A(k,j) * tmp;

                      ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:560:35: error: no match for call to '(Matrix) (int&, int&)'

                 A(i,j) = A(i,j) - A(k,j) * tmp;

                               ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:560:44: error: no match for call to '(Matrix) (int&, int&)'

                 A(i,j) = A(i,j) - A(k,j) * tmp;

                                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:572:28: error: no match for call to '(Matrix) (int&, int&)'

             tmp = A(i,k);

                        ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:573:22: error: no match for call to '(Matrix) (int&, int&)'

             A(i,k) = A(i,pivrows[k]);

                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:609:38: error: 'Matrix' is not a template

Print &operator<<(Print &strm, const Matrix<rows,cols,MemT> &obj)

                                  ^

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Print& operator<<(Print&, const Matrix&)':

C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:618:28: error: no match for call to '(const Matrix) (int&, int&)'

         strm << obj(i,j) << ((j == cols - 1)? '}' : ',');

                        ^

exit status 1
Error compiling for board Arduino Due (Programming Port).

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

from basiclinearalgebra.

tomstewart89 avatar tomstewart89 commented on August 20, 2024

Ahhh ok, I managed to reproduce this at my end and I think I've figured this out. Basically the CMSIS (a cortex library that used by the DUE) already defines a Matrix class so there's a conflict. I'll just wrap my stuff up in a namespace and we should be good to go. Give me a little while to make the changes

from basiclinearalgebra.

tomstewart89 avatar tomstewart89 commented on August 20, 2024

Ok, try version 2.2 and just make sure that you declare Matrices by first specifying the BLA namespace like so: BLA::Matrix<2,2> A;

Let me know how it goes!

from basiclinearalgebra.

juanjqo avatar juanjqo commented on August 20, 2024

Hi Tom!
The version 2.2 works now!
The example HowToUse works and I did not perform some kind of additional declaration.

Thank you for your support!

from basiclinearalgebra.

tomstewart89 avatar tomstewart89 commented on August 20, 2024

No problem, enjoy the library!

from basiclinearalgebra.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.