Simbody
3.4 (development)
|
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_