diff --git a/src/Function1D.cpp b/src/Function1D.cpp index 4d4d781..68284a0 100644 --- a/src/Function1D.cpp +++ b/src/Function1D.cpp @@ -18,6 +18,7 @@ #include #include #include +#include using namespace Aurora; @@ -199,6 +200,19 @@ Aurora::Matrix Aurora::round(const Aurora::Matrix &&matrix) { return matrix; } +Matrix Aurora::auroraNot(const Matrix& aMatrix){ + return auroraNot(std::forward(aMatrix.deepCopy())); +} + +Matrix Aurora::auroraNot(Matrix&& aMatrix){ + Eigen::Map v2(aMatrix.getData(), aMatrix.getDataSize()); + v2 = (v2.array()>0).select(1,v2); + v2 = (v2.array()<0).select(0,v2); + v2 = v2.array()+1.0; + v2 = (v2.array() == 2.0).select(0.0, v2); + return aMatrix; +} + Aurora::Matrix Aurora::sqrt(const Aurora::Matrix& matrix) { if (matrix.getValueType() != Complex) { diff --git a/src/Function1D.h b/src/Function1D.h index cddd088..2926d23 100644 --- a/src/Function1D.h +++ b/src/Function1D.h @@ -113,6 +113,9 @@ namespace Aurora { */ void padding(Matrix& aMatrix, int aIndex, double aValue); + Matrix auroraNot(const Matrix& aMatrix); + Matrix auroraNot(Matrix&& aMatrix); + Matrix convertfp16tofloat(short* aData, int aRows, int aColumns); };