SmallMatrix.h

Go to the documentation of this file.
00001 #ifndef SimTK_SIMMATRIX_SMALLMATRIX_H_
00002 #define SimTK_SIMMATRIX_SMALLMATRIX_H_
00003 
00004 /* -------------------------------------------------------------------------- *
00005  *                      SimTK Core: SimTK Simmatrix(tm)                       *
00006  * -------------------------------------------------------------------------- *
00007  * This is part of the SimTK Core biosimulation toolkit originating from      *
00008  * Simbios, the NIH National Center for Physics-Based Simulation of           *
00009  * Biological Structures at Stanford, funded under the NIH Roadmap for        *
00010  * Medical Research, grant U54 GM072970. See https://simtk.org.               *
00011  *                                                                            *
00012  * Portions copyright (c) 2005-7 Stanford University and the Authors.         *
00013  * Authors: Michael Sherman                                                   *
00014  * Contributors:                                                              *
00015  *                                                                            *
00016  * Permission is hereby granted, free of charge, to any person obtaining a    *
00017  * copy of this software and associated documentation files (the "Software"), *
00018  * to deal in the Software without restriction, including without limitation  *
00019  * the rights to use, copy, modify, merge, publish, distribute, sublicense,   *
00020  * and/or sell copies of the Software, and to permit persons to whom the      *
00021  * Software is furnished to do so, subject to the following conditions:       *
00022  *                                                                            *
00023  * The above copyright notice and this permission notice shall be included in *
00024  * all copies or substantial portions of the Software.                        *
00025  *                                                                            *
00026  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
00027  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   *
00028  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    *
00029  * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,    *
00030  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR      *
00031  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE  *
00032  * USE OR OTHER DEALINGS IN THE SOFTWARE.                                     *
00033  * -------------------------------------------------------------------------- */
00034 
00096 #include "SimTKcommon/Scalar.h"
00097 #include "SimTKcommon/TemplatizedLapack.h"
00098 
00099 // Forward declarations.
00100 namespace SimTK {
00101 
00102 template <int M, class E=Real, int STRIDE=1>              class Vec;
00103 template <int N, class E=Real, int STRIDE=1>              class Row; 
00104 template <int M, int N, class E=Real, int CS=M, int RS=1> class Mat; // col & row spacing
00105 template <int M, class E=Real, int RS=1>                  class SymMat;
00106 
00107 } // namespace SimTK
00108 
00109 #include "SimTKcommon/internal/ResultType.h"
00110 #include "SimTKcommon/internal/Vec.h"
00111 #include "SimTKcommon/internal/Row.h"
00112 #include "SimTKcommon/internal/Mat.h"
00113 #include "SimTKcommon/internal/SymMat.h"
00114 #include "SimTKcommon/internal/SmallMatrixMixed.h"
00115 
00116 // Friendly abbreviations.
00117 namespace SimTK {
00118 
00119 typedef Vec<1> Vec1; // just a scalar
00120 typedef Vec<2> Vec2;
00121 typedef Vec<3> Vec3;
00122 typedef Vec<4> Vec4;
00123 typedef Vec<5> Vec5;
00124 typedef Vec<6> Vec6;
00125 typedef Vec<7> Vec7;
00126 typedef Vec<8> Vec8;
00127 typedef Vec<9> Vec9;
00128 
00129 typedef Row<1> Row1; // just a scalar
00130 typedef Row<2> Row2;
00131 typedef Row<3> Row3;
00132 typedef Row<4> Row4;
00133 typedef Row<5> Row5;
00134 typedef Row<6> Row6;
00135 typedef Row<7> Row7;
00136 typedef Row<8> Row8;
00137 typedef Row<9> Row9;
00138 
00139 typedef SymMat<1> SymMat11; // just a scalar
00140 typedef SymMat<2> SymMat22;
00141 typedef SymMat<3> SymMat33;
00142 typedef SymMat<4> SymMat44;
00143 typedef SymMat<5> SymMat55;
00144 typedef SymMat<6> SymMat66;
00145 typedef SymMat<7> SymMat77;
00146 typedef SymMat<8> SymMat88;
00147 typedef SymMat<9> SymMat99;
00148 
00149 typedef Mat<1,1> Mat11; // This is just a scalar
00150 typedef Mat<1,2> Mat12; // The rest here are just single Rows
00151 typedef Mat<1,3> Mat13;
00152 typedef Mat<1,4> Mat14;
00153 typedef Mat<1,5> Mat15;
00154 typedef Mat<1,6> Mat16;
00155 typedef Mat<1,7> Mat17;
00156 typedef Mat<1,8> Mat18;
00157 typedef Mat<1,9> Mat19;
00158 
00159 typedef Mat<2,1> Mat21; // Mats with 2 rows
00160 typedef Mat<2,2> Mat22;
00161 typedef Mat<2,3> Mat23;
00162 typedef Mat<2,4> Mat24;
00163 typedef Mat<2,5> Mat25;
00164 typedef Mat<2,6> Mat26;
00165 typedef Mat<2,7> Mat27;
00166 typedef Mat<2,8> Mat28;
00167 typedef Mat<2,9> Mat29;
00168 
00169 typedef Mat<3,1> Mat31; // Mats with 3 rows
00170 typedef Mat<3,2> Mat32;
00171 typedef Mat<3,3> Mat33;
00172 typedef Mat<3,4> Mat34;
00173 typedef Mat<3,5> Mat35;
00174 typedef Mat<3,6> Mat36;
00175 typedef Mat<3,7> Mat37;
00176 typedef Mat<3,8> Mat38;
00177 typedef Mat<3,9> Mat39;
00178 
00179 typedef Mat<4,1> Mat41; // Mats with 4 rows
00180 typedef Mat<4,2> Mat42;
00181 typedef Mat<4,3> Mat43;
00182 typedef Mat<4,4> Mat44;
00183 typedef Mat<4,5> Mat45;
00184 typedef Mat<4,6> Mat46;
00185 typedef Mat<4,7> Mat47;
00186 typedef Mat<4,8> Mat48;
00187 typedef Mat<4,9> Mat49;
00188 
00189 typedef Mat<5,1> Mat51; // Mats with 5 rows
00190 typedef Mat<5,2> Mat52;
00191 typedef Mat<5,3> Mat53;
00192 typedef Mat<5,4> Mat54;
00193 typedef Mat<5,5> Mat55;
00194 typedef Mat<5,6> Mat56;
00195 typedef Mat<5,7> Mat57;
00196 typedef Mat<5,8> Mat58;
00197 typedef Mat<5,9> Mat59;
00198 
00199 typedef Mat<6,1> Mat61; // Mats with 6 rows
00200 typedef Mat<6,2> Mat62;
00201 typedef Mat<6,3> Mat63;
00202 typedef Mat<6,4> Mat64;
00203 typedef Mat<6,5> Mat65;
00204 typedef Mat<6,6> Mat66;
00205 typedef Mat<6,7> Mat67;
00206 typedef Mat<6,8> Mat68;
00207 typedef Mat<6,9> Mat69;
00208 
00209 typedef Mat<7,1> Mat71; // Mats with 7 rows
00210 typedef Mat<7,2> Mat72;
00211 typedef Mat<7,3> Mat73;
00212 typedef Mat<7,4> Mat74;
00213 typedef Mat<7,5> Mat75;
00214 typedef Mat<7,6> Mat76;
00215 typedef Mat<7,7> Mat77;
00216 typedef Mat<7,8> Mat78;
00217 typedef Mat<7,9> Mat79;
00218 
00219 typedef Mat<8,1> Mat81; // Mats with 8 rows
00220 typedef Mat<8,2> Mat82;
00221 typedef Mat<8,3> Mat83;
00222 typedef Mat<8,4> Mat84;
00223 typedef Mat<8,5> Mat85;
00224 typedef Mat<8,6> Mat86;
00225 typedef Mat<8,7> Mat87;
00226 typedef Mat<8,8> Mat88;
00227 typedef Mat<8,9> Mat89;
00228 
00229 typedef Mat<9,1> Mat91; // Mats with 9 rows
00230 typedef Mat<9,2> Mat92;
00231 typedef Mat<9,3> Mat93;
00232 typedef Mat<9,4> Mat94;
00233 typedef Mat<9,5> Mat95;
00234 typedef Mat<9,6> Mat96;
00235 typedef Mat<9,7> Mat97;
00236 typedef Mat<9,8> Mat98;
00237 typedef Mat<9,9> Mat99;
00238 
00239 
00240 } //namespace SimTK
00241 
00242 
00243 #endif //SimTK_SIMMATRIX_SMALLMATRIX_H_

Generated on Wed Dec 30 11:04:52 2009 for SimTKcore by  doxygen 1.6.1