Simbody  3.4 (development)
SmallMatrix.h
Go to the documentation of this file.
00001 #ifndef SimTK_SIMMATRIX_SMALLMATRIX_H_
00002 #define SimTK_SIMMATRIX_SMALLMATRIX_H_
00003 
00004 /* -------------------------------------------------------------------------- *
00005  *                       Simbody(tm): SimTKcommon                             *
00006  * -------------------------------------------------------------------------- *
00007  * This is part of the SimTK 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/home/simbody.  *
00011  *                                                                            *
00012  * Portions copyright (c) 2005-12 Stanford University and the Authors.        *
00013  * Authors: Michael Sherman                                                   *
00014  * Contributors:                                                              *
00015  *                                                                            *
00016  * Licensed under the Apache License, Version 2.0 (the "License"); you may    *
00017  * not use this file except in compliance with the License. You may obtain a  *
00018  * copy of the License at http://www.apache.org/licenses/LICENSE-2.0.         *
00019  *                                                                            *
00020  * Unless required by applicable law or agreed to in writing, software        *
00021  * distributed under the License is distributed on an "AS IS" BASIS,          *
00022  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *
00023  * See the License for the specific language governing permissions and        *
00024  * limitations under the License.                                             *
00025  * -------------------------------------------------------------------------- */
00026 
00088 #include "SimTKcommon/Scalar.h"
00089 #include "SimTKcommon/TemplatizedLapack.h"
00090 
00091 
00092 #include "SimTKcommon/internal/ResultType.h"
00093 #include "SimTKcommon/internal/Vec.h"
00094 #include "SimTKcommon/internal/Row.h"
00095 #include "SimTKcommon/internal/Mat.h"
00096 #include "SimTKcommon/internal/SymMat.h"
00097 #include "SimTKcommon/internal/SmallMatrixMixed.h"
00098 
00099 // Friendly abbreviations.
00100 namespace SimTK {
00101 
00102 typedef Vec<1> Vec1; // just a scalar
00103 typedef Vec<2> Vec2;
00104 typedef Vec<3> Vec3;
00105 typedef Vec<4> Vec4;
00106 typedef Vec<5> Vec5;
00107 typedef Vec<6> Vec6;
00108 typedef Vec<7> Vec7;
00109 typedef Vec<8> Vec8;
00110 typedef Vec<9> Vec9;
00111 
00112 typedef Vec<1,float> fVec1; // just a scalar
00113 typedef Vec<2,float> fVec2;
00114 typedef Vec<3,float> fVec3;
00115 typedef Vec<4,float> fVec4;
00116 typedef Vec<5,float> fVec5;
00117 typedef Vec<6,float> fVec6;
00118 typedef Vec<7,float> fVec7;
00119 typedef Vec<8,float> fVec8;
00120 typedef Vec<9,float> fVec9;
00121 
00122 typedef Row<1> Row1; // just a scalar
00123 typedef Row<2> Row2;
00124 typedef Row<3> Row3;
00125 typedef Row<4> Row4;
00126 typedef Row<5> Row5;
00127 typedef Row<6> Row6;
00128 typedef Row<7> Row7;
00129 typedef Row<8> Row8;
00130 typedef Row<9> Row9;
00131 
00132 typedef Row<1,float> fRow1; // just a scalar
00133 typedef Row<2,float> fRow2;
00134 typedef Row<3,float> fRow3;
00135 typedef Row<4,float> fRow4;
00136 typedef Row<5,float> fRow5;
00137 typedef Row<6,float> fRow6;
00138 typedef Row<7,float> fRow7;
00139 typedef Row<8,float> fRow8;
00140 typedef Row<9,float> fRow9;
00141 
00142 typedef SymMat<1> SymMat11; // just a scalar
00143 typedef SymMat<2> SymMat22;
00144 typedef SymMat<3> SymMat33;
00145 typedef SymMat<4> SymMat44;
00146 typedef SymMat<5> SymMat55;
00147 typedef SymMat<6> SymMat66;
00148 typedef SymMat<7> SymMat77;
00149 typedef SymMat<8> SymMat88;
00150 typedef SymMat<9> SymMat99;
00151 
00152 typedef SymMat<1,float> fSymMat11; // just a scalar
00153 typedef SymMat<2,float> fSymMat22;
00154 typedef SymMat<3,float> fSymMat33;
00155 typedef SymMat<4,float> fSymMat44;
00156 typedef SymMat<5,float> fSymMat55;
00157 typedef SymMat<6,float> fSymMat66;
00158 typedef SymMat<7,float> fSymMat77;
00159 typedef SymMat<8,float> fSymMat88;
00160 typedef SymMat<9,float> fSymMat99;
00161 
00162 typedef Mat<1,1> Mat11; // This is just a scalar
00163 typedef Mat<1,2> Mat12; // The rest here are just single Rows
00164 typedef Mat<1,3> Mat13;
00165 typedef Mat<1,4> Mat14;
00166 typedef Mat<1,5> Mat15;
00167 typedef Mat<1,6> Mat16;
00168 typedef Mat<1,7> Mat17;
00169 typedef Mat<1,8> Mat18;
00170 typedef Mat<1,9> Mat19;
00171 
00172 typedef Mat<2,1> Mat21; // Mats with 2 rows
00173 typedef Mat<2,2> Mat22;
00174 typedef Mat<2,3> Mat23;
00175 typedef Mat<2,4> Mat24;
00176 typedef Mat<2,5> Mat25;
00177 typedef Mat<2,6> Mat26;
00178 typedef Mat<2,7> Mat27;
00179 typedef Mat<2,8> Mat28;
00180 typedef Mat<2,9> Mat29;
00181 
00182 typedef Mat<3,1> Mat31; // Mats with 3 rows
00183 typedef Mat<3,2> Mat32;
00184 typedef Mat<3,3> Mat33;
00185 typedef Mat<3,4> Mat34;
00186 typedef Mat<3,5> Mat35;
00187 typedef Mat<3,6> Mat36;
00188 typedef Mat<3,7> Mat37;
00189 typedef Mat<3,8> Mat38;
00190 typedef Mat<3,9> Mat39;
00191 
00192 typedef Mat<4,1> Mat41; // Mats with 4 rows
00193 typedef Mat<4,2> Mat42;
00194 typedef Mat<4,3> Mat43;
00195 typedef Mat<4,4> Mat44;
00196 typedef Mat<4,5> Mat45;
00197 typedef Mat<4,6> Mat46;
00198 typedef Mat<4,7> Mat47;
00199 typedef Mat<4,8> Mat48;
00200 typedef Mat<4,9> Mat49;
00201 
00202 typedef Mat<5,1> Mat51; // Mats with 5 rows
00203 typedef Mat<5,2> Mat52;
00204 typedef Mat<5,3> Mat53;
00205 typedef Mat<5,4> Mat54;
00206 typedef Mat<5,5> Mat55;
00207 typedef Mat<5,6> Mat56;
00208 typedef Mat<5,7> Mat57;
00209 typedef Mat<5,8> Mat58;
00210 typedef Mat<5,9> Mat59;
00211 
00212 typedef Mat<6,1> Mat61; // Mats with 6 rows
00213 typedef Mat<6,2> Mat62;
00214 typedef Mat<6,3> Mat63;
00215 typedef Mat<6,4> Mat64;
00216 typedef Mat<6,5> Mat65;
00217 typedef Mat<6,6> Mat66;
00218 typedef Mat<6,7> Mat67;
00219 typedef Mat<6,8> Mat68;
00220 typedef Mat<6,9> Mat69;
00221 
00222 typedef Mat<7,1> Mat71; // Mats with 7 rows
00223 typedef Mat<7,2> Mat72;
00224 typedef Mat<7,3> Mat73;
00225 typedef Mat<7,4> Mat74;
00226 typedef Mat<7,5> Mat75;
00227 typedef Mat<7,6> Mat76;
00228 typedef Mat<7,7> Mat77;
00229 typedef Mat<7,8> Mat78;
00230 typedef Mat<7,9> Mat79;
00231 
00232 typedef Mat<8,1> Mat81; // Mats with 8 rows
00233 typedef Mat<8,2> Mat82;
00234 typedef Mat<8,3> Mat83;
00235 typedef Mat<8,4> Mat84;
00236 typedef Mat<8,5> Mat85;
00237 typedef Mat<8,6> Mat86;
00238 typedef Mat<8,7> Mat87;
00239 typedef Mat<8,8> Mat88;
00240 typedef Mat<8,9> Mat89;
00241 
00242 typedef Mat<9,1> Mat91; // Mats with 9 rows
00243 typedef Mat<9,2> Mat92;
00244 typedef Mat<9,3> Mat93;
00245 typedef Mat<9,4> Mat94;
00246 typedef Mat<9,5> Mat95;
00247 typedef Mat<9,6> Mat96;
00248 typedef Mat<9,7> Mat97;
00249 typedef Mat<9,8> Mat98;
00250 typedef Mat<9,9> Mat99;
00251 
00252 // Just doing some of the popular ones for now.
00253 typedef Mat<1,1,float> fMat11;
00254 typedef Mat<2,2,float> fMat22;
00255 typedef Mat<3,3,float> fMat33;
00256 typedef Mat<3,4,float> fMat34;
00257 typedef Mat<4,3,float> fMat43;
00258 typedef Mat<4,4,float> fMat44;
00259 typedef Mat<5,5,float> fMat55;
00260 typedef Mat<6,6,float> fMat66;
00261 typedef Mat<7,7,float> fMat77;
00262 typedef Mat<8,8,float> fMat88;
00263 typedef Mat<9,9,float> fMat99;
00264 
00265 
00266 } //namespace SimTK
00267 
00268 
00269 #endif //SimTK_SIMMATRIX_SMALLMATRIX_H_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines