1 // vector.h: manage declarations of integer vector classes 2 ////////////////////////////////////////////////////////////////////////// 3 // 4 // Copyright 1990-2012 John Cremona 5 // 6 // This file is part of the eclib package. 7 // 8 // eclib is free software; you can redistribute it and/or modify it 9 // under the terms of the GNU General Public License as published by the 10 // Free Software Foundation; either version 2 of the License, or (at your 11 // option) any later version. 12 // 13 // eclib is distributed in the hope that it will be useful, but WITHOUT 14 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16 // for more details. 17 // 18 // You should have received a copy of the GNU General Public License 19 // along with eclib; if not, write to the Free Software Foundation, 20 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 21 // 22 ////////////////////////////////////////////////////////////////////////// 23 24 #if !defined(_ECLIB_VECTOR_H) 25 #define _ECLIB_VECTOR_H 1 //flags that this file has been included 26 27 #include <eclib/arith.h> 28 29 class vec_i; class vec_l; class vec_m; 30 class mat_i; class mat_l; class mat_m; 31 class svec_i; class svec_l; 32 class smat_i; class smat_l; 33 class smat_i_elim; class smat_l_elim; 34 class subspace_i; class subspace_l; class msubspace; 35 36 #undef scalar 37 #undef vec 38 #undef mat 39 #undef subspace 40 #undef svec 41 #undef smat 42 #undef smat_elim 43 44 #define scalar int 45 #define vec vec_i 46 #define mat mat_i 47 #define subspace subspace_i 48 #define svec svec_i 49 #define smat smat_i 50 #define smat_elim smat_i_elim 51 52 #include "vec.h" 53 54 #undef scalar 55 #undef vec 56 #undef mat 57 #undef subspace 58 #undef svec 59 #undef smat 60 #undef smat_elim 61 62 #define scalar long 63 #define vec vec_l 64 #define mat mat_l 65 #define subspace subspace_l 66 #define svec svec_l 67 #define smat smat_l 68 #define smat_elim smat_l_elim 69 70 #include "vec.h" 71 72 #undef scalar 73 #undef vec 74 #undef mat 75 #undef subspace 76 #undef svec 77 #undef smat 78 #undef smat_elim 79 80 #endif 81