/* Copyright 1998-2017 Research Foundation State University of New York */ /* This file is part of QUB Online. */ /* QUB Online is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation, either version 3 of the License, or */ /* (at your option) any later version. */ /* QUB Online is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* You should have received a copy of the GNU General Public License, */ /* named LICENSE.txt, in the QUB Online program directory. If not, see */ /* . */ #ifndef MATRIXUTIL_H #define MATRIXUTIL_H /* begin_html See also: Up: Index end_html */ #include #include "milutil.h" #include "matrix.h" #define BOOL int #define TRUE 1 #define FALSE 0 #ifdef __cplusplus extern "C" { #endif QUBFAST_API BOOL eigen(double** a, int n, double* wr, double* wi, double** v, std::ostream &msgOut); QUBFAST_API int svdecomp(double **a, int m, int n, double *w, double **v, std::ostream &msgOut); void svdecomp0(double **a, int m, int n, double *w, double **v); QUBFAST_API BOOL gaussj0(double** a, int n, double **b, int m, std::ostream &msgOut); QUBFAST_API BOOL gaussj_invert(fq::matrix& mat, int n, std::ostream& msgOut); #ifdef __cplusplus } #endif #endif