Simbody
3.5
|
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_