Simbody  3.5
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-13 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 {
00126 typedef Vec<2> Vec2;
00129 typedef Vec<3> Vec3;
00132 typedef Vec<4> Vec4;
00133 
00134 
00138 typedef Mat<2, 2> Mat22;
00142 typedef Mat<3, 3> Mat33;
00146 typedef Mat<4, 4> Mat44;
00147 
00149 typedef SymMat<2> SymMat22;
00151 typedef SymMat<3> SymMat33;
00153 typedef SymMat<4> SymMat44;
00154 
00157 typedef Row<2> Row2;
00160 typedef Row<3> Row3;
00163 typedef Row<4> Row4;
00170 // Less-popular Vec typedefs.
00171 typedef Vec<1> Vec1; 
00172 typedef Vec<5> Vec5; 
00173 typedef Vec<6> Vec6; 
00174 typedef Vec<7> Vec7; 
00175 typedef Vec<8> Vec8; 
00176 typedef Vec<9> Vec9; 
00177 
00178 // Less-popular Mat typedefs.
00179 typedef Mat<1,1> Mat11; 
00180 typedef Mat<1,2> Mat12; 
00181 typedef Mat<1,3> Mat13; 
00182 typedef Mat<1,4> Mat14; 
00183 typedef Mat<1,5> Mat15; 
00184 typedef Mat<1,6> Mat16; 
00185 typedef Mat<1,7> Mat17; 
00186 typedef Mat<1,8> Mat18; 
00187 typedef Mat<1,9> Mat19; 
00188 
00189 typedef Mat<2,1> Mat21; 
00190 typedef Mat<2,3> Mat23; 
00191 typedef Mat<2,4> Mat24; 
00192 typedef Mat<2,5> Mat25; 
00193 typedef Mat<2,6> Mat26; 
00194 typedef Mat<2,7> Mat27; 
00195 typedef Mat<2,8> Mat28; 
00196 typedef Mat<2,9> Mat29; 
00197 
00198 typedef Mat<3,1> Mat31; 
00199 typedef Mat<3,2> Mat32; 
00200 typedef Mat<3,4> Mat34; 
00201 typedef Mat<3,5> Mat35; 
00202 typedef Mat<3,6> Mat36; 
00203 typedef Mat<3,7> Mat37; 
00204 typedef Mat<3,8> Mat38; 
00205 typedef Mat<3,9> Mat39; 
00206 
00207 typedef Mat<4,1> Mat41; 
00208 typedef Mat<4,2> Mat42; 
00209 typedef Mat<4,3> Mat43; 
00210 typedef Mat<4,5> Mat45; 
00211 typedef Mat<4,6> Mat46; 
00212 typedef Mat<4,7> Mat47; 
00213 typedef Mat<4,8> Mat48; 
00214 typedef Mat<4,9> Mat49; 
00215 
00216 typedef Mat<5,1> Mat51; 
00217 typedef Mat<5,2> Mat52; 
00218 typedef Mat<5,3> Mat53; 
00219 typedef Mat<5,4> Mat54; 
00220 typedef Mat<5,5> Mat55; 
00221 typedef Mat<5,6> Mat56; 
00222 typedef Mat<5,7> Mat57; 
00223 typedef Mat<5,8> Mat58; 
00224 typedef Mat<5,9> Mat59; 
00225 
00226 typedef Mat<6,1> Mat61; 
00227 typedef Mat<6,2> Mat62; 
00228 typedef Mat<6,3> Mat63; 
00229 typedef Mat<6,4> Mat64; 
00230 typedef Mat<6,5> Mat65; 
00231 typedef Mat<6,6> Mat66; 
00232 typedef Mat<6,7> Mat67; 
00233 typedef Mat<6,8> Mat68; 
00234 typedef Mat<6,9> Mat69; 
00235 
00236 typedef Mat<7,1> Mat71; 
00237 typedef Mat<7,2> Mat72; 
00238 typedef Mat<7,3> Mat73; 
00239 typedef Mat<7,4> Mat74; 
00240 typedef Mat<7,5> Mat75; 
00241 typedef Mat<7,6> Mat76; 
00242 typedef Mat<7,7> Mat77; 
00243 typedef Mat<7,8> Mat78; 
00244 typedef Mat<7,9> Mat79; 
00245 
00246 typedef Mat<8,1> Mat81; 
00247 typedef Mat<8,2> Mat82; 
00248 typedef Mat<8,3> Mat83; 
00249 typedef Mat<8,4> Mat84; 
00250 typedef Mat<8,5> Mat85; 
00251 typedef Mat<8,6> Mat86; 
00252 typedef Mat<8,7> Mat87; 
00253 typedef Mat<8,8> Mat88; 
00254 typedef Mat<8,9> Mat89; 
00255 
00256 typedef Mat<9,1> Mat91; 
00257 typedef Mat<9,2> Mat92; 
00258 typedef Mat<9,3> Mat93; 
00259 typedef Mat<9,4> Mat94; 
00260 typedef Mat<9,5> Mat95; 
00261 typedef Mat<9,6> Mat96; 
00262 typedef Mat<9,7> Mat97; 
00263 typedef Mat<9,8> Mat98; 
00264 typedef Mat<9,9> Mat99; 
00265 
00266 // Less-popular SymMat typedefs.
00267 typedef SymMat<1> SymMat11; 
00268 typedef SymMat<5> SymMat55; 
00269 typedef SymMat<6> SymMat66; 
00270 typedef SymMat<7> SymMat77; 
00271 typedef SymMat<8> SymMat88; 
00272 typedef SymMat<9> SymMat99; 
00273 
00274 // Less-popular Row typedefs.
00275 typedef Row<1> Row1; 
00276 
00277 typedef Row<5> Row5;
00279 typedef Row<6> Row6;
00281 typedef Row<7> Row7;
00283 typedef Row<8> Row8;
00285 typedef Row<9> Row9;
00286 
00287 // float-precision Vecs.
00288 typedef Vec<1, float> fVec1; 
00289 typedef Vec<2, float> fVec2; 
00290 typedef Vec<3, float> fVec3; 
00291 typedef Vec<4, float> fVec4; 
00292 typedef Vec<5, float> fVec5; 
00293 typedef Vec<6, float> fVec6; 
00294 typedef Vec<7, float> fVec7; 
00295 typedef Vec<8, float> fVec8; 
00296 typedef Vec<9, float> fVec9; 
00297 
00298 // Just doing some of the popular ones for now.
00299 typedef Mat<1,1,float> fMat11; 
00300 typedef Mat<2,2,float> fMat22; 
00301 typedef Mat<3,3,float> fMat33; 
00302 typedef Mat<3,4,float> fMat34; 
00303 typedef Mat<4,3,float> fMat43; 
00304 typedef Mat<4,4,float> fMat44; 
00305 typedef Mat<5,5,float> fMat55; 
00306 typedef Mat<6,6,float> fMat66; 
00307 typedef Mat<7,7,float> fMat77; 
00308 typedef Mat<8,8,float> fMat88; 
00309 typedef Mat<9,9,float> fMat99; 
00310 
00312 typedef SymMat<1, float> fSymMat11;
00313 typedef SymMat<2, float> fSymMat22; 
00314 typedef SymMat<3, float> fSymMat33; 
00315 typedef SymMat<4, float> fSymMat44; 
00316 typedef SymMat<5, float> fSymMat55; 
00317 typedef SymMat<6, float> fSymMat66; 
00318 typedef SymMat<7, float> fSymMat77; 
00319 typedef SymMat<8, float> fSymMat88; 
00320 typedef SymMat<9, float> fSymMat99; 
00321 
00322 // float-precision Rows.
00323 typedef Row<1, float> fRow1; 
00324 typedef Row<2, float> fRow2; 
00325 typedef Row<3, float> fRow3; 
00326 typedef Row<4, float> fRow4; 
00327 typedef Row<5, float> fRow5; 
00328 typedef Row<6, float> fRow6; 
00329 typedef Row<7, float> fRow7; 
00330 typedef Row<8, float> fRow8; 
00331 typedef Row<9, float> fRow9; 
00332 
00334 } //namespace SimTK
00335 
00336 
00337 #endif //SimTK_SIMMATRIX_SMALLMATRIX_H_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines