Closed juanjqo closed 6 years ago
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.
Hi Tom, Thank you for your answer. I trying to compile this:
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:
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
^
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
^
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.
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!
Hi Tom, I updated to 2.1 version. However, the problem is present, yet. 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
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:129:58: error: too many template-parameter-lists
Matrix<rowEnd-rowStart,colEnd-colStart,Reference
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:136:1: error: 'Matrix' is not a template
Matrix<rows,cols,Reference
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:136:42: error: expected initializer before '<' token
Matrix<rows,cols,Reference
^
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:100: 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
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:38: error: expected initializer before '<' token
Matrix<cols,rows,Trans
^
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.
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
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!
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!
No problem, enjoy the library!
Dear Tom,
It is possible to use the library on Arduino DUE?
I am trying, but I have problems to compile.
Thanks!