#define EIGEN_USE_MKL_ALL

#include <iostream>
#include <algorithm>


#include <complex>

#include "Matrix.h"
#include "CudaMatrix.h"
#include "Function.h"
#include "Function1D.h"
#include "Function2D.h"
#include "Function3D.h"
#include "MatlabReader.h"

int main()
{
    auto A = Aurora::zeros(1000,1,1);
    auto B = Aurora::zeros(1000,1,1);
    for (size_t i = 0; i < 1000; i++)
    {
        A[i] = -1;
        B[i] =  i;
    }
    auto C = A+B;
    auto dA = A.toDeviceMatrix();
    auto dB = B.toDeviceMatrix();
    auto dC = (dA+dB).toHostMatrix();
    for (size_t i = 0; i < 1000; i++)
    {
        if (C[i]!=dC[i]){
            printf("error value i:%zu, value1:%f, value2: %f",i,C[i],dC[i]);
            return 9;
        }
    }
    
    return 0;
}
