Comments (8)
Hey Juan,
It should be fine to use Arduino DUE. If you show me some code and the compiler error you're seeing I can probably help you resolve the problem.
from basiclinearalgebra.
Hi Tom,
Thank you for your answer.
I trying to compile this:
#include <BasicLinearAlgebra.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
When the board is MEGA or UNO for instance, everything is ok. But when the selected board is a DUE,
This happens:
Arduino: 1.8.5 (Windows 10), Board: "Arduino Due (Programming Port)"
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,
from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:4:61: error: using typedef-name 'Matrix' after 'class'
template<int rows, int cols, class ElemT, class MemT> class Matrix;
^
In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,
from sketch\HowToUse.ino.cpp:1:
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: 'Matrix' has a previous declaration here
} Matrix;
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,
from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:1: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:66: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:124: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:180: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Add(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:28:15: error: 'struct Matrix' has no member named 'delegate'
C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:28:44: error: 'const struct Matrix' has no member named 'delegate'
C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:28:73: error: 'const struct Matrix' has no member named 'delegate'
C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] + B.delegate.m[i * cols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:34:1: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:34:71: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:34:129: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:34:185: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:38:15: error: 'struct Matrix' has no member named 'delegate'
C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:38:44: error: 'const struct Matrix' has no member named 'delegate'
C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:38:73: error: 'const struct Matrix' has no member named 'delegate'
C.delegate.m[i * cols + j] = A.delegate.m[i * cols + j] - B.delegate.m[i * cols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:1: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:85: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:143: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:213: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,
from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: In function 'Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:52:19: error: 'struct Matrix' has no member named 'delegate'
C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:52:55: error: 'const struct Matrix' has no member named 'delegate'
C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:52:80: error: 'const struct Matrix' has no member named 'delegate'
C.delegate.m[i * operandCols + j] = A.delegate.m[i * cols] * B.delegate.m[j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:55:19: error: 'struct Matrix' has no member named 'delegate'
C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:55:56: error: 'const struct Matrix' has no member named 'delegate'
C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:55:85: error: 'const struct Matrix' has no member named 'delegate'
C.delegate.m[i * operandCols + j] += A.delegate.m[i * cols + k] * B.delegate.m[k * operandCols + j];
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:78:87: error: 'Matrix' is not a template
template<int rows, int cols, class ParentMemT, class ElemT = float> using RefMatrix = Matrix<rows, cols, ElemT, Ref<ElemT,ParentMemT> >;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:95:68: error: 'Matrix' is not a template
template<int rows, int cols, class ElemT = float> using Identity = Matrix<rows, cols, ElemT, Iden >;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:154:94: error: 'Matrix' is not a template
template<int rows, int cols, int tableSize = cols, class ElemT = float> using SparseMatrix = Matrix<rows, cols, ElemT, Sparse<cols, tableSize, ElemT> >;
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:20:99: error: using typedef-name 'Matrix' after 'class'
template<int rows, int cols = 1, class ElemT = float, class MemT = Array<rows,cols,ElemT> > class Matrix
^
In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,
from sketch\HowToUse.ino.cpp:1:
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: 'Matrix' has a previous declaration here
} Matrix;
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:71:14: error: expected initializer before '<' token
ElemT &Matrix<rows,cols,ElemT,MemT>::operator()(int row, int col) const
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:78:1: error: 'Matrix' is not a template
Matrix<height,width,ElemT,Ref<ElemT,MemT> > Matrix<rows,cols,ElemT,MemT>::Submatrix(Range rowRange, Range colRange) const
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:78:45: error: too many template-parameter-lists
Matrix<height,width,ElemT,Ref<ElemT,MemT> > Matrix<rows,cols,ElemT,MemT>::Submatrix(Range rowRange, Range colRange) const
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:88:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator=(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:88:30: error: too many template-parameter-lists
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator=(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:98:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator=(ElemT arr[rows][cols])
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:98:37: error: expected initializer before '<' token
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator=(ElemT arr[rows][cols])
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:108:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::Fill(const ElemT &val)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:108:37: error: expected initializer before '<' token
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::Fill(const ElemT &val)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:121:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator+(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:121:49: error: too many template-parameter-lists
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator+(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:131:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator+=(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:131:30: error: too many template-parameter-lists
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator+=(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:1: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:47: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:86: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:123: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Add(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:143:15: error: 'struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:143:33: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:143:51: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:152:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator-(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:152:49: error: too many template-parameter-lists
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator-(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:162:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator-=(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:162:30: error: too many template-parameter-lists
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator-=(const Matrix<rows,cols,opElemT,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:170:1: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,retMemT> &Subtract(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:170:52: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,retMemT> &Subtract(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:170:91: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,retMemT> &Subtract(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:170:128: error: 'Matrix' is not a template
Matrix<rows,cols,retElemT,retMemT> &Subtract(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:18: error: no match for call to '(Matrix) (int&, int&)'
C(i,j) = A(i,j) - B(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:27: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) - B(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:36: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) - B(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:183:1: error: 'Matrix' is not a template
Matrix<rows,operandCols,ElemT,Array<rows,operandCols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator*(const Matrix<cols,operandCols,opElemT,opMemT> &operand)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:183:63: error: too many template-parameter-lists
Matrix<rows,operandCols,ElemT,Array<rows,operandCols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator*(const Matrix<cols,operandCols,opElemT,opMemT> &operand)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:193:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator*=(const Matrix<rows,cols,opElemT,opMemT> &operand)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:193:30: error: too many template-parameter-lists
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator*=(const Matrix<rows,cols,opElemT,opMemT> &operand)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:1: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:59: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:98: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:142: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:212:19: error: 'struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:212:37: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:212:55: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:215:19: error: 'struct Matrix' has no member named 'delegate'
C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:215:38: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:215:56: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:224:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator-()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:224:55: error: expected initializer before '<' token
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator-()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:238:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator*(ElemT k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:238:55: error: expected initializer before '<' token
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::operator*(ElemT k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:247:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator*=(ElemT k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:247:37: error: expected initializer before '<' token
Matrix<rows,cols,ElemT,MemT> &Matrix<rows,cols,ElemT,MemT>::operator*=(ElemT k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:256:1: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,retMemT> &Scale(const Matrix<rows,cols,ElemT,MemT> &A, const opElemT &B, Matrix<rows,operandCols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:256:56: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,retMemT> &Scale(const Matrix<rows,cols,ElemT,MemT> &A, const opElemT &B, Matrix<rows,operandCols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:256:107: error: 'Matrix' is not a template
Matrix<rows,operandCols,retElemT,retMemT> &Scale(const Matrix<rows,cols,ElemT,MemT> &A, const opElemT &B, Matrix<rows,operandCols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Scale(const Matrix&, const opElemT&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:260:18: error: no match for call to '(Matrix) (int&, int&)'
C(i,j) = A(i,j) * B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:260:27: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) * B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:268:1: error: 'Matrix' is not a template
Matrix<cols,rows,ElemT,Array<cols,rows,ElemT> > Matrix<rows,cols,ElemT,MemT>::Transpose()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:268:55: error: expected initializer before '<' token
Matrix<cols,rows,ElemT,Array<cols,rows,ElemT> > Matrix<rows,cols,ElemT,MemT>::Transpose()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:1: error: 'Matrix' is not a template
Matrix<cols,rows,retElemT,retMemT> &Transpose(const Matrix<rows,cols,ElemT,MemT> &A, Matrix<cols,rows,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:53: error: 'Matrix' is not a template
Matrix<cols,rows,retElemT,retMemT> &Transpose(const Matrix<rows,cols,ElemT,MemT> &A, Matrix<cols,rows,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:86: error: 'Matrix' is not a template
Matrix<cols,rows,retElemT,retMemT> &Transpose(const Matrix<rows,cols,ElemT,MemT> &A, Matrix<cols,rows,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Transpose(const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:284:18: error: no match for call to '(Matrix) (int&, int&)'
C(j,i) = A(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:284:27: error: no match for call to '(const Matrix) (int&, int&)'
C(j,i) = A(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:292:1: error: 'Matrix' is not a template
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::Inverse(int *res = NULL)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:292:55: error: expected initializer before '<' token
Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > Matrix<rows,cols,ElemT,MemT>::Inverse(int *res = NULL)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:302:1: error: 'Matrix' is not a template
Matrix<dim,dim,ElemT,MemT> &Invert(Matrix<dim,dim,ElemT,MemT> &A, int *res = NULL)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:302:36: error: 'Matrix' is not a template
Matrix<dim,dim,ElemT,MemT> &Invert(Matrix<dim,dim,ElemT,MemT> &A, int *res = NULL)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Invert(Matrix&, int*)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:314:26: error: no match for call to '(Matrix) (int&, int&)'
if(fabs(A(i,k)) >= tmp)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:316:33: error: no match for call to '(Matrix) (int&, int&)'
tmp = fabs(A(i,k));
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:322:23: error: no match for call to '(Matrix) (int&, int&)'
if (A(pivrow,k) == 0.0f)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:332:28: error: no match for call to '(Matrix) (int&, int&)'
tmp = A(k,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:333:22: error: no match for call to '(Matrix) (int&, int&)'
A(k,j) = A(pivrow,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:333:36: error: no match for call to '(Matrix) (int&, int&)'
A(k,j) = A(pivrow,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:334:27: error: no match for call to '(Matrix) (int&, int&)'
A(pivrow,j) = tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:339:27: error: no match for call to '(Matrix) (int&, int&)'
tmp = 1.0f / A(k,k); // invert pivot element
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:340:14: error: no match for call to '(Matrix) (int&, int&)'
A(k,k) = 1.0f; // This element of input matrix becomes result matrix
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:18: error: no match for call to '(Matrix) (int&, int&)'
A(k,j) = A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:27: error: no match for call to '(Matrix) (int&, int&)'
A(k,j) = A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:351:28: error: no match for call to '(Matrix) (int&, int&)'
tmp = A(i,k);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:352:22: error: no match for call to '(Matrix) (int&, int&)'
A(i,k) = 0.0f; // The other place where in matrix becomes result mat
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:26: error: no match for call to '(Matrix) (int&, int&)'
A(i,j) = A(i,j) - A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:35: error: no match for call to '(Matrix) (int&, int&)'
A(i,j) = A(i,j) - A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:44: error: no match for call to '(Matrix) (int&, int&)'
A(i,j) = A(i,j) - A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:367:28: error: no match for call to '(Matrix) (int&, int&)'
tmp = A(i,k);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:368:22: error: no match for call to '(Matrix) (int&, int&)'
A(i,k) = A(i,pivrows[k]);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:1: error: 'Matrix' is not a template
Matrix<rows,cols+operandCols,ElemT,Array<rows,cols+operandCols,ElemT> > HorzCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,operandCols,opElemT,opMemT> &B)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:87: error: 'Matrix' is not a template
Matrix<rows,cols+operandCols,ElemT,Array<rows,cols+operandCols,ElemT> > HorzCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,operandCols,opElemT,opMemT> &B)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:126: error: 'Matrix' is not a template
Matrix<rows,cols+operandCols,ElemT,Array<rows,cols+operandCols,ElemT> > HorzCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,operandCols,opElemT,opMemT> &B)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix HorzCat(const Matrix&, const Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:385:5: error: 'Matrix' is not a template
Matrix<rows,cols + operandCols,ElemT,Array<rows,cols + operandCols,ElemT> > ret;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:386:9: error: 'struct Matrix' has no member named 'Submatrix'
ret.Submatrix(Range<rows>(0),Range<cols>(0)) = A;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:387:9: error: 'struct Matrix' has no member named 'Submatrix'
ret.Submatrix(Range<rows>(0),Range<operandCols>(cols)) = B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:1: error: 'Matrix' is not a template
Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > VertCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<operandRows,cols,opElemT,opMemT> &B)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:91: error: 'Matrix' is not a template
Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > VertCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<operandRows,cols,opElemT,opMemT> &B)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:130: error: 'Matrix' is not a template
Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > VertCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<operandRows,cols,opElemT,opMemT> &B)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix VertCat(const Matrix&, const Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:395:5: error: 'Matrix' is not a template
Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > ret;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:396:9: error: 'struct Matrix' has no member named 'Submatrix'
ret.Submatrix(Range<rows>(0),Range<cols>(0)) = A;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:397:9: error: 'struct Matrix' has no member named 'Submatrix'
ret.Submatrix(Range<operandRows>(rows),Range<cols>(0)) = B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:426:38: error: 'Matrix' is not a template
Print &operator<<(Print &strm, const Matrix<rows,cols,ElemT,MemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Print& operator<<(Print&, const Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:435:28: error: no match for call to '(const Matrix) (int&, int&)'
strm << obj(i,j) << ((j == cols - 1)? '}' : ',');
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino: In function 'void setup()':
HowToUse:16: error: 'Matrix' is not a template
Matrix<3,3,float> A;
^
HowToUse:19: error: 'Matrix' is not a template
Matrix<3> v;
^
HowToUse:22: error: 'struct Matrix' has no member named 'Fill'
v.Fill(0);
^
HowToUse:25: error: no match for call to '(Matrix) (int, int)'
v(2,0) = 5.3;
^
HowToUse:26: error: no match for call to '(Matrix) (int)'
v(1) = 43.67; // you can also just write v(2) = 5.3; since v has only one column
^
HowToUse:30: error: no match for 'operator=' (operand types are 'Matrix' and 'float [3][3]')
A = arrayA;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:30:5: note: candidates are:
In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,
from sketch\HowToUse.ino.cpp:1:
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: Matrix& Matrix::operator=(const Matrix&)
} Matrix;
^
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: no known conversion for argument 1 from 'float [3][3]' to 'const Matrix&'
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: Matrix& Matrix::operator=(Matrix&&)
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: no known conversion for argument 1 from 'float [3][3]' to 'Matrix&&'
HowToUse:34: error: 'Matrix' is not a template
Matrix<3,3> B(arrayB);
^
HowToUse:34: error: no matching function for call to 'Matrix::Matrix(float [3][3])'
Matrix<3,3> B(arrayB);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:34:23: note: candidates are:
In file included from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:282:0,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3.h:59,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam.h:198,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/libsam/chip.h:25,
from C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/Arduino.h:42,
from sketch\HowToUse.ino.cpp:1:
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: Matrix::Matrix()
} Matrix;
^
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: candidate expects 0 arguments, 1 provided
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: constexpr Matrix::Matrix(const Matrix&)
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: no known conversion for argument 1 from 'float [3][3]' to 'const Matrix&'
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: constexpr Matrix::Matrix(Matrix&&)
C:\Users\juanj\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\system/CMSIS/Device/ATMEL/sam3xa/include/component/component_matrix.h:71:3: note: no known conversion for argument 1 from 'float [3][3]' to 'Matrix&&'
HowToUse:37: error: 'Matrix' is not a template
Matrix<3,3> C = A + B;
^
HowToUse:37: error: no match for 'operator+' (operand types are 'Matrix' and 'Matrix')
Matrix<3,3> C = A + B;
^
HowToUse:45: error: no matching function for call to 'Add(Matrix&, Matrix&, Matrix&)'
Add(A,B,C);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:45:12: note: candidates are:
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,
from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:56: note: template<int rows, int cols, class ElemT, class opElemT, class retElemT> Matrix& Add(const Matrix&, const Matrix&, Matrix&)
Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,opElemT,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,retElemT,Array<rows,cols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:24:56: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:45:12: note: couldn't deduce template parameter 'rows'
Add(A,B,C);
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:37: note: template<int rows, int cols, class ElemT, class MemT, class opElemT, class opMemT, class retElemT, class retMemT> Matrix& Add(const Matrix&, const Matrix&, Matrix&)
Matrix<rows,cols,retElemT,retMemT> &Add(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,cols,opElemT,opMemT> &B, Matrix<rows,cols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:139:37: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:45:12: note: couldn't deduce template parameter 'rows'
Add(A,B,C);
^
HowToUse:49: error: no match for 'operator-=' (operand types are 'Matrix' and 'Matrix')
C -= B;
^
HowToUse:52: error: no match for 'operator+=' (operand types are 'Matrix' and 'Matrix')
B += A;
^
HowToUse:56: error: 'Matrix' is not a template
Matrix<3,1> D = A * v;
^
HowToUse:56: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')
Matrix<3,1> D = A * v;
^
HowToUse:59: error: no matching function for call to 'Multiply(Matrix&, Matrix&, Matrix&)'
Multiply(A,v,D);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:59:17: note: candidates are:
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:16:0,
from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:70: note: template<int rows, int cols, int operandCols, class ElemT, class opElemT, class retElemT> Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)
Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,ElemT,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,opElemT,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,retElemT,Array<rows,operandCols,retElemT> > &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:44:70: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:59:17: note: couldn't deduce template parameter 'rows'
Multiply(A,v,D);
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:44: note: template<int rows, int cols, int operandCols, class ElemT, class MemT, class opElemT, class opMemT, class retElemT, class retMemT> Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)
Matrix<rows,operandCols,retElemT,retMemT> &Multiply(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<cols,operandCols,opElemT,opMemT> &B, Matrix<rows,operandCols,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:204:44: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:59:17: note: couldn't deduce template parameter 'rows'
Multiply(A,v,D);
^
HowToUse:62: error: 'Matrix' is not a template
Matrix<1,3> D_T = D.Transpose();
^
HowToUse:62: error: 'struct Matrix' has no member named 'Transpose'
Matrix<1,3> D_T = D.Transpose();
^
HowToUse:67: error: 'Matrix' is not a template
Matrix<3,3> C_T;
^
HowToUse:68: error: no matching function for call to 'Transpose(Matrix&, Matrix&)'
Transpose(C,C_T);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:68:18: note: candidate is:
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:37: note: template<int rows, int cols, class ElemT, class MemT, class retElemT, class retMemT> Matrix& Transpose(const Matrix&, Matrix&)
Matrix<cols,rows,retElemT,retMemT> &Transpose(const Matrix<rows,cols,ElemT,MemT> &A, Matrix<cols,rows,retElemT,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:37: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:68:18: note: couldn't deduce template parameter 'rows'
Transpose(C,C_T);
^
HowToUse:71: error: 'Matrix' is not a template
Matrix<3,3> C_inv = C.Inverse();
^
HowToUse:71: error: 'struct Matrix' has no member named 'Inverse'
Matrix<3,3> C_inv = C.Inverse();
^
HowToUse:76: error: 'struct Matrix' has no member named 'Inverse'
C_inv = C.Inverse(&res); // after this call res will be 0 if the inversion was successful and non-zero otherwise.
^
HowToUse:79: error: no matching function for call to 'Invert(Matrix&)'
Invert(C);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:79:11: note: candidate is:
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:302:29: note: template<int dim, class ElemT, class MemT> Matrix& Invert(Matrix&, int*)
Matrix<dim,dim,ElemT,MemT> &Invert(Matrix<dim,dim,ElemT,MemT> &A, int *res = NULL)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:302:29: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:79:11: note: couldn't deduce template parameter 'dim'
Invert(C);
^
HowToUse:82: error: 'Matrix' is not a template
Matrix<3,6> AleftOfB = HorzCat(A,B);
^
HowToUse:82: error: no matching function for call to 'HorzCat(Matrix&, Matrix&)'
Matrix<3,6> AleftOfB = HorzCat(A,B);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:82:37: note: candidate is:
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:73: note: template<int rows, int cols, int operandCols, class ElemT, class MemT, class opElemT, class opMemT> Matrix HorzCat(const Matrix&, const Matrix&)
Matrix<rows,cols+operandCols,ElemT,Array<rows,cols+operandCols,ElemT> > HorzCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<rows,operandCols,opElemT,opMemT> &B)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:383:73: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:82:37: note: couldn't deduce template parameter 'rows'
Matrix<3,6> AleftOfB = HorzCat(A,B);
^
HowToUse:85: error: 'Matrix' is not a template
Matrix<6,3> AonTopOfB = VertCat(A,B);
^
HowToUse:85: error: no matching function for call to 'VertCat(Matrix&, Matrix&)'
Matrix<6,3> AonTopOfB = VertCat(A,B);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:85:38: note: candidate is:
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:77: note: template<int rows, int cols, int operandRows, class ElemT, class MemT, class opElemT, class opMemT> Matrix VertCat(const Matrix&, const Matrix&)
Matrix<rows + operandRows,cols,ElemT,Array<rows + operandRows,cols,ElemT> > VertCat(const Matrix<rows,cols,ElemT,MemT> &A, const Matrix<operandRows,cols,opElemT,opMemT> &B)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:393:77: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:85:38: note: couldn't deduce template parameter 'rows'
Matrix<6,3> AonTopOfB = VertCat(A,B);
^
HowToUse:88: error: no match for call to '(Matrix) (int)'
Serial << "v(1): " << v(1) << '\n';
^
HowToUse:91: error: no match for 'operator<<' (operand types are 'Print' and 'Matrix')
Serial << "B: " << B << '\n';
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:91:19: note: candidates are:
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:404:15: note: Print& operator<<(Print&, int)
inline Print &operator <<(Print &strm, const int obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:404:15: note: no known conversion for argument 2 from 'Matrix' to 'int'
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:409:15: note: Print& operator<<(Print&, float)
inline Print &operator <<(Print &strm, const float obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:409:15: note: no known conversion for argument 2 from 'Matrix' to 'float'
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:414:15: note: Print& operator<<(Print&, const char*)
inline Print &operator <<(Print &strm, const char *obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:414:15: note: no known conversion for argument 2 from 'Matrix' to 'const char*'
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:419:15: note: Print& operator<<(Print&, char)
inline Print &operator <<(Print &strm, const char obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:419:15: note: no known conversion for argument 2 from 'Matrix' to 'char'
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:426:8: note: template<int rows, int cols, class ElemT, class MemT> Print& operator<<(Print&, const Matrix&)
Print &operator<<(Print &strm, const Matrix<rows,cols,ElemT,MemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:426:8: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra\examples\HowToUse\HowToUse.ino:91:22: note: couldn't deduce template parameter 'rows'
Serial << "B: " << B << '\n';
^
HowToUse:94: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')
Serial << "identity matrix: " << AleftOfB * AonTopOfB - (A * A + B * B) + C * C.Inverse() << '\n';
^
HowToUse:94: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')
Serial << "identity matrix: " << AleftOfB * AonTopOfB - (A * A + B * B) + C * C.Inverse() << '\n';
^
HowToUse:94: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')
Serial << "identity matrix: " << AleftOfB * AonTopOfB - (A * A + B * B) + C * C.Inverse() << '\n';
^
HowToUse:94: error: 'struct Matrix' has no member named 'Inverse'
Serial << "identity matrix: " << AleftOfB * AonTopOfB - (A * A + B * B) + C * C.Inverse() << '\n';
^
HowToUse:97: error: 'Matrix' is not a template
Matrix<3> x; Matrix<2> u; Matrix<3,2> G; Matrix<3,3> F; float dt;
^
HowToUse:97: error: 'Matrix' is not a template
Matrix<3> x; Matrix<2> u; Matrix<3,2> G; Matrix<3,3> F; float dt;
^
HowToUse:97: error: 'Matrix' is not a template
Matrix<3> x; Matrix<2> u; Matrix<3,2> G; Matrix<3,3> F; float dt;
^
HowToUse:97: error: 'Matrix' is not a template
Matrix<3> x; Matrix<2> u; Matrix<3,2> G; Matrix<3,3> F; float dt;
^
HowToUse:98: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')
x += (F * x + G * u) * dt;
^
HowToUse:98: error: no match for 'operator*' (operand types are 'Matrix' and 'Matrix')
x += (F * x + G * u) * dt;
^
exit status 1
'Matrix' is not a template
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
from basiclinearalgebra.
I've just put up a new version (v2.1) with a few changes that I've been working on over the last few months. Could you upgrade to 2.1 in library manager and let me know how you go? I'd say there's just some differences in the compilation settings between the two boards but to begin with this is worth a shot!
from basiclinearalgebra.
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 > Matrix<rows,cols,MemT>::Submatrix(Slice<rowStart,rowEnd>, Slice<colStart,colEnd>) const
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:129:58: error: too many template-parameter-lists
Matrix<rowEnd-rowStart,colEnd-colStart,Reference > Matrix<rows,cols,MemT>::Submatrix(Slice<rowStart,rowEnd>, Slice<colStart,colEnd>) const
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:136:1: error: 'Matrix' is not a template
Matrix<rows,cols,Reference > Matrix<rows,cols,MemT>::Ref() const
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:136:42: error: expected initializer before '<' token
Matrix<rows,cols,Reference > Matrix<rows,cols,MemT>::Ref() const
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:146:1: error: 'Matrix' is not a template
Matrix<rows,cols+operandCols,HorzCat<cols,MemT,opMemT> > Matrix<rows,cols,MemT>::operator||(const Matrix<rows,operandCols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:146:58: error: too many template-parameter-lists
Matrix<rows,cols+operandCols,HorzCat<cols,MemT,opMemT> > Matrix<rows,cols,MemT>::operator||(const Matrix<rows,operandCols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:154:1: error: 'Matrix' is not a template
Matrix<rows+operandRows,cols,VertCat<rows,MemT,opMemT> > Matrix<rows,cols,MemT>::operator&&(const Matrix<operandRows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:154:58: error: too many template-parameter-lists
Matrix<rows+operandRows,cols,VertCat<rows,MemT,opMemT> > Matrix<rows,cols,MemT>::operator&&(const Matrix<operandRows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:164:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator=(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:164:24: error: too many template-parameter-lists
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator=(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator=(typename MemT::elem_t arr[rows][cols])
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:174:31: error: expected initializer before '<' token
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator=(typename MemT::elem_t arr[rows][cols])
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:184:10: error: 'Matrix' is not a template
Inserter<Matrix<rows,cols,MemT> > Matrix<rows,cols,MemT>::operator<<(const typename MemT::elem_t &val)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:184:41: error: expected initializer before '<' token
Inserter<Matrix<rows,cols,MemT> > Matrix<rows,cols,MemT>::operator<<(const typename MemT::elem_t &val)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:191:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::Fill(const typename MemT::elem_t &val)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:191:31: error: expected initializer before '<' token
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::Fill(const typename MemT::elem_t &val)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:202:6: error: too many template-parameter-lists
void Matrix<rows,cols,MemT>::FillRowMajor(typename MemT::elem_t head, TAIL... tail)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:212:11: error: expected initializer before '<' token
int Matrix<rows,cols,MemT>::GetRowCount()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:218:11: error: expected initializer before '<' token
int Matrix<rows,cols,MemT>::GetColCount()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:227:1: error: 'Matrix' is not a template
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator+(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:227:59: error: too many template-parameter-lists
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator+(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:237:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator+=(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:237:24: error: too many template-parameter-lists
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator+=(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245:1: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245:38: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245:71: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245
Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:245:28: error: redefinition of 'template<int rows, int cols, class MemT, class opMemT, class retMemT> Matrix& Add(const Matrix&, const Matrix&, Matrix&)'
Matrix<rows,cols,retMemT> &Add(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:9:0,
from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:25:47: error: 'template<int rows, int cols, class ElemT, class opElemT, class retElemT> Matrix& Add(const Matrix&, const Matrix&, Matrix&)' previously declared here
Matrix<rows,cols,Array<rows,cols,retElemT> > &Add(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)
^
In file included from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Add(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:249:15: error: 'struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:249:33: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:249:51: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,j) + B.delegate(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:258:1: error: 'Matrix' is not a template
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:258:59: error: too many template-parameter-lists
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:268:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator-=(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:268:24: error: too many template-parameter-lists
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator-=(const Matrix<rows,cols,opMemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:1: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:43: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:76: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:105: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:276:28: error: redefinition of 'template<int rows, int cols, class MemT, class opMemT, class retMemT> Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)'
Matrix<rows,cols,retMemT> &Subtract(const Matrix<rows,cols,MemT> &A, const Matrix<rows,cols,opMemT> &B, Matrix<rows,cols,retMemT> &C)
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:9:0,
from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:35:47: error: 'template<int rows, int cols, class ElemT, class opElemT, class retElemT> Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)' previously declared here
Matrix<rows,cols,Array<rows,cols,retElemT> > &Subtract(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<rows,cols,Array<rows,cols,opElemT> > &B, Matrix<rows,cols,Array<rows,cols,retElemT> > &C)
^
In file included from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Subtract(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:18: error: no match for call to '(Matrix) (int&, int&)'
C(i,j) = A(i,j) - B(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:27: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) - B(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:280:36: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) - B(i,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:289:1: error: 'Matrix' is not a template
Matrix<rows,operandCols,Array<rows,operandCols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator*(const Matrix<cols,operandCols,opMemT> &operand)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:289:73: error: too many template-parameter-lists
Matrix<rows,operandCols,Array<rows,operandCols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator*(const Matrix<cols,operandCols,opMemT> &operand)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:299:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator*=(const Matrix<rows,cols,opMemT> &operand)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:299:24: error: too many template-parameter-lists
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator*=(const Matrix<rows,cols,opMemT> &operand)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:1: error: 'Matrix' is not a template
Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:50: error: 'Matrix' is not a template
Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:83: error: 'Matrix' is not a template
Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:119: error: 'Matrix' is not a template
Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:310:35: error: redefinition of 'template<int rows, int cols, int operandCols, class MemT, class opMemT, class retMemT> Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)'
Matrix<rows,operandCols,retMemT> &Multiply(const Matrix<rows,cols,MemT> &A, const Matrix<cols,operandCols,opMemT> &B, Matrix<rows,operandCols,retMemT> &C)
^
In file included from C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:9:0,
from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/MemoryDelegate.hpp:45:61: error: 'template<int rows, int cols, int operandCols, class ElemT, class opElemT, class retElemT> Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)' previously declared here
Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &Multiply(const Matrix<rows,cols,Array<rows,cols,ElemT> > &A, const Matrix<cols,operandCols,Array<cols,operandCols,opElemT> > &B, Matrix<rows,operandCols,Array<rows,operandCols,retElemT> > &C)
^
In file included from C:\Users\juanj\Documents\Arduino\sketch_oct28a\sketch_oct28a.ino:1:0:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Multiply(const Matrix&, const Matrix&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:318:19: error: 'struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:318:37: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:318:55: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) = A.delegate(i,0) * B.delegate(0,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:321:19: error: 'struct Matrix' has no member named 'delegate'
C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:321:38: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:321:56: error: 'const struct Matrix' has no member named 'delegate'
C.delegate(i,j) += A.delegate(i,k) * B.delegate(k,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:330:1: error: 'Matrix' is not a template
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:330:65: error: expected initializer before '<' token
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:1: error: 'Matrix' is not a template
Matrix<cols,rows,Trans > Matrix<rows,cols,MemT>::operator~()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:344:38: error: expected initializer before '<' token
Matrix<cols,rows,Trans > Matrix<rows,cols,MemT>::operator~()
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:1: error: 'Matrix' is not a template
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator+(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:355:65: error: expected initializer before '<' token
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator+(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:364:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator+=(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:364:31: error: expected initializer before '<' token
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator+=(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:372:1: error: 'Matrix' is not a template
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:372:65: error: expected initializer before '<' token
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator-(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:381:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator-=(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:381:31: error: expected initializer before '<' token
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator-=(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:389:1: error: 'Matrix' is not a template
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator*(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:389:65: error: expected initializer before '<' token
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator*(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:398:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator*=(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:398:31: error: expected initializer before '<' token
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator*=(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:406:1: error: 'Matrix' is not a template
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator/(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:406:65: error: expected initializer before '<' token
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::operator/(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:415:1: error: 'Matrix' is not a template
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator/=(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:415:31: error: expected initializer before '<' token
Matrix<rows,cols,MemT> &Matrix<rows,cols,MemT>::operator/=(const typename MemT::elem_t k)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:424:1: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseAdd(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:424:49: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseAdd(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:424:108: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseAdd(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& ElementwiseAdd(const Matrix&, const typename MemT::elem_t&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:428:18: error: no match for call to '(Matrix) (int&, int&)'
C(i,j) = A(i,j) + B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:428:27: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) + B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:435:1: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseSubtract(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:435:54: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseSubtract(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:435:113: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseSubtract(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& ElementwiseSubtract(const Matrix&, const typename MemT::elem_t&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:439:18: error: no match for call to '(Matrix) (int&, int&)'
C(i,j) = A(i,j) - B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:439:27: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) - B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:446:1: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseMultiply(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:446:54: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseMultiply(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:446:113: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseMultiply(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& ElementwiseMultiply(const Matrix&, const typename MemT::elem_t&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:450:18: error: no match for call to '(Matrix) (int&, int&)'
C(i,j) = A(i,j) * B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:450:27: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) * B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:457:1: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseDivide(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:457:52: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseDivide(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:457:111: error: 'Matrix' is not a template
Matrix<rows,cols,retMemT> &ElementwiseDivide(const Matrix<rows,cols,MemT> &A, const typename MemT::elem_t &B, Matrix<rows,cols,retMemT> &C)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& ElementwiseDivide(const Matrix&, const typename MemT::elem_t&, Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:461:18: error: no match for call to '(Matrix) (int&, int&)'
C(i,j) = A(i,j) / B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:461:27: error: no match for call to '(const Matrix) (int&, int&)'
C(i,j) = A(i,j) / B;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:41: error: 'Matrix' is not a template
typename MemT::elem_t Determinant(const Matrix<dim,dim,MemT> &A)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'typename MemT::elem_t Determinant(const Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:476:27: error: 'const struct Matrix' has no member named 'delegate'
Minor<MemT> del(A.delegate, i, 0);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:477:9: error: 'Matrix' is not a template
Matrix<dim-1,dim-1,Minor<MemT> > m(del);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:480:32: error: no matching function for call to 'Determinant(Matrix&)'
det = Determinant(m);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:480:32: note: candidate is:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:23: note: template<int dim, class MemT> typename MemT::elem_t Determinant(const Matrix&)
typename MemT::elem_t Determinant(const Matrix<dim,dim,MemT> &A)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:23: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:480:32: note: couldn't deduce template parameter 'dim'
det = Determinant(m);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:33: error: no matching function for call to 'Determinant(Matrix&)'
det += Determinant(m) * (i % 2? -A(i,0) : A(i,0));
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:33: note: candidate is:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:23: note: template<int dim, class MemT> typename MemT::elem_t Determinant(const Matrix&)
typename MemT::elem_t Determinant(const Matrix<dim,dim,MemT> &A)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:469:23: note: template argument deduction/substitution failed:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:33: note: couldn't deduce template parameter 'dim'
det += Determinant(m) * (i % 2? -A(i,0) : A(i,0));
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:51: error: no match for call to '(const Matrix) (int&, int)'
det += Determinant(m) * (i % 2? -A(i,0) : A(i,0));
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:482:60: error: no match for call to '(const Matrix) (int&, int)'
det += Determinant(m) * (i % 2? -A(i,0) : A(i,0));
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:489:35: error: 'Matrix' is not a template
typename MemT::elem_t Determinant(Matrix<2,2,MemT> &A)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'typename MemT::elem_t Determinant(Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:491:17: error: no match for call to '(Matrix) (int, int)'
return A(0,0) * A(1,1) - A(1,0) * A(0,1);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:491:26: error: no match for call to '(Matrix) (int, int)'
return A(0,0) * A(1,1) - A(1,0) * A(0,1);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:491:35: error: no match for call to '(Matrix) (int, int)'
return A(0,0) * A(1,1) - A(1,0) * A(0,1);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:491:44: error: no match for call to '(Matrix) (int, int)'
return A(0,0) * A(1,1) - A(1,0) * A(0,1);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:497:1: error: 'Matrix' is not a template
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::Inverse(int *res)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:497:65: error: expected initializer before '<' token
Matrix<rows,cols,Array<rows,cols,typename MemT::elem_t> > Matrix<rows,cols,MemT>::Inverse(int *res)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:507:1: error: 'Matrix' is not a template
Matrix<dim,dim,MemT> &Invert(Matrix<dim,dim,MemT> &A, int *res = NULL)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:507:30: error: 'Matrix' is not a template
Matrix<dim,dim,MemT> &Invert(Matrix<dim,dim,MemT> &A, int *res = NULL)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Matrix& Invert(Matrix&, int*)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:519:26: error: no match for call to '(Matrix) (int&, int&)'
if(fabs(A(i,k)) >= tmp)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:521:33: error: no match for call to '(Matrix) (int&, int&)'
tmp = fabs(A(i,k));
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:527:23: error: no match for call to '(Matrix) (int&, int&)'
if (A(pivrow,k) == 0.0f)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:537:28: error: no match for call to '(Matrix) (int&, int&)'
tmp = A(k,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:538:22: error: no match for call to '(Matrix) (int&, int&)'
A(k,j) = A(pivrow,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:538:36: error: no match for call to '(Matrix) (int&, int&)'
A(k,j) = A(pivrow,j);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:539:27: error: no match for call to '(Matrix) (int&, int&)'
A(pivrow,j) = tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:544:27: error: no match for call to '(Matrix) (int&, int&)'
tmp = 1.0f / A(k,k); // invert pivot element
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:545:14: error: no match for call to '(Matrix) (int&, int&)'
A(k,k) = 1.0f; // This element of input matrix becomes result matrix
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:549:18: error: no match for call to '(Matrix) (int&, int&)'
A(k,j) = A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:549:27: error: no match for call to '(Matrix) (int&, int&)'
A(k,j) = A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:556:28: error: no match for call to '(Matrix) (int&, int&)'
tmp = A(i,k);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:557:22: error: no match for call to '(Matrix) (int&, int&)'
A(i,k) = 0.0f; // The other place where in matrix becomes result mat
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:560:26: error: no match for call to '(Matrix) (int&, int&)'
A(i,j) = A(i,j) - A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:560:35: error: no match for call to '(Matrix) (int&, int&)'
A(i,j) = A(i,j) - A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:560:44: error: no match for call to '(Matrix) (int&, int&)'
A(i,j) = A(i,j) - A(k,j) * tmp;
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:572:28: error: no match for call to '(Matrix) (int&, int&)'
tmp = A(i,k);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:573:22: error: no match for call to '(Matrix) (int&, int&)'
A(i,k) = A(i,pivrows[k]);
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: At global scope:
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:609:38: error: 'Matrix' is not a template
Print &operator<<(Print &strm, const Matrix<rows,cols,MemT> &obj)
^
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h: In function 'Print& operator<<(Print&, const Matrix&)':
C:\Users\juanj\Documents\Arduino\libraries\BasicLinearAlgebra/BasicLinearAlgebra.h:618:28: error: no match for call to '(const Matrix) (int&, int&)'
strm << obj(i,j) << ((j == cols - 1)? '}' : ',');
^
exit status 1
Error compiling for board Arduino Due (Programming Port).
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
from basiclinearalgebra.
Ahhh ok, I managed to reproduce this at my end and I think I've figured this out. Basically the CMSIS (a cortex library that used by the DUE) already defines a Matrix class so there's a conflict. I'll just wrap my stuff up in a namespace and we should be good to go. Give me a little while to make the changes
from basiclinearalgebra.
Ok, try version 2.2 and just make sure that you declare Matrices by first specifying the BLA namespace like so: BLA::Matrix<2,2> A;
Let me know how it goes!
from basiclinearalgebra.
Hi Tom!
The version 2.2 works now!
The example HowToUse works and I did not perform some kind of additional declaration.
Thank you for your support!
from basiclinearalgebra.
No problem, enjoy the library!
from basiclinearalgebra.
Related Issues (20)
- Tabbed Function is not Working With the BLA HOT 2
- Something weird is happening when I want to display the Matrix data HOT 2
- Access specific row/col? HOT 1
- Library using too much memory when used in classes? HOT 2
- examples don't compile HOT 2
- Matrix Multiplication with different sized matrices gives errors HOT 2
- After the latest update, I'm getting two template-related compilation errors HOT 3
- BLA not compiling for esp32 core boards. HOT 2
- Invert appears to return improper results when using a double Array HOT 1
- issue with matrix inversion HOT 4
- Initialize Matrix to 0 HOT 2
- Initialize matrix with random values HOT 4
- Custom matrix diagonal values HOT 1
- Delete a matrix instace HOT 1
- Inverse Matrix 3x3 false HOT 2
- Sparse matrix HOT 2
- A 3D pose representation to work with the basicLinearAlgebra library HOT 3
- Implementing a "ones" matrix
- numerically differentiating vector valued functions HOT 2
- Note that the F matrix in the example clashes with the F() macro HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from basiclinearalgebra.