001 /* 002 * Copyright (C) 2008-2010 by Holger Arndt 003 * 004 * This file is part of the Universal Java Matrix Package (UJMP). 005 * See the NOTICE file distributed with this work for additional 006 * information regarding copyright ownership and licensing. 007 * 008 * UJMP is free software; you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation; either version 2 011 * of the License, or (at your option) any later version. 012 * 013 * UJMP is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU Lesser General Public License for more details. 017 * 018 * You should have received a copy of the GNU Lesser General Public 019 * License along with UJMP; if not, write to the 020 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 021 * Boston, MA 02110-1301 USA 022 */ 023 024 package org.ujmp.core.util.matrices; 025 026 import java.util.ArrayList; 027 import java.util.Collections; 028 import java.util.List; 029 030 import org.ujmp.core.Matrix; 031 import org.ujmp.core.calculation.Calculation.Ret; 032 import org.ujmp.core.enums.FileFormat; 033 import org.ujmp.core.stringmatrix.impl.DefaultDenseStringMatrix2D; 034 035 public class MatrixLibraries extends DefaultDenseStringMatrix2D { 036 private static final long serialVersionUID = -2575195318248762416L; 037 038 public static final int LABELCOLUMN = 0; 039 040 public static final int VERSION = 1; 041 042 public static final int DATE = 2; 043 044 public static final int LICENCE = 3; 045 046 public static final int JAVA14 = 4; 047 048 public static final int JAVA5 = 5; 049 050 public static final int JAVA6 = 6; 051 052 public static final int DENSESA = 7; 053 054 public static final int DENSEAA = 8; 055 056 public static final int DENSEBLOCK = 9; 057 058 public static final int SPARSEDOK = 10; 059 060 public static final int SPARSELIL = 11; 061 062 public static final int SPARSEYALE = 12; 063 064 public static final int SPARSECRS = 13; 065 066 public static final int SPARSECDS = 14; 067 068 public static final int DOUBLE = 15; 069 070 public static final int FLOAT = 16; 071 072 public static final int BIGDECIMAL = 17; 073 074 public static final int COMPLEX = 18; 075 076 public static final int D2 = 19; 077 078 public static final int D3 = 20; 079 080 public static final int D3PLUS = 21; 081 082 public static final int MULTITHREADED = 22; 083 084 public static final int INPLACE = 23; 085 086 public static final int CACHEDRESULTS = 24; 087 088 public static final int TRANSPOSE = 25; 089 090 public static final int SCALE = 26; 091 092 public static final int PLUSMINUS = 27; 093 094 public static final int INV = 28; 095 096 public static final int SOLVE = 29; 097 098 public static final int LU = 30; 099 100 public static final int QR = 31; 101 102 public static final int SVD = 32; 103 104 public static final int CHOL = 33; 105 106 public static final int EIG = 34; 107 108 public static final int PACKAGE = 35; 109 110 public static final int LABELROW = 0; 111 112 public static final int ARRAY4J = 1; 113 114 public static final int COLT = 2; 115 116 public static final int COMMONSMATH = 3; 117 118 public static final int EJML = 4; 119 120 public static final int JAMA = 5; 121 122 public static final int JAMPACK = 6; 123 124 public static final int JBLAS = 7; 125 126 public static final int JLINALG = 8; 127 128 public static final int JMATHARRAY = 9; 129 130 public static final int JMATRICES = 10; 131 132 public static final int JSCI = 11; 133 134 public static final int JSCIENCE = 12; 135 136 public static final int MANTISSA = 13; 137 138 public static final int MTJ = 14; 139 140 public static final int OJALGO = 15; 141 142 public static final int ORBITAL = 16; 143 144 public static final int OWLPACK = 17; 145 146 public static final int PARALLELCOLT = 18; 147 148 public static final int SST = 19; 149 150 public static final int UJMP = 20; 151 152 public static final int VECMATH = 21; 153 154 public static final String NONSINGULARLETTER = "n"; 155 156 public static final String NONSINGULARTEXT = "non-singular matrices only"; 157 158 public static final String ERRORTEXT = "error in implementation"; 159 160 private List<String> footnotes = new ArrayList<String>(); 161 162 public enum MatrixLibrariesFormat { 163 DEFAULT, LATEX, HTML 164 }; 165 166 private MatrixLibrariesFormat format = MatrixLibrariesFormat.DEFAULT; 167 168 public MatrixLibraries() { 169 this(MatrixLibrariesFormat.DEFAULT); 170 } 171 172 public MatrixLibraries(MatrixLibrariesFormat format) { 173 super(36, 22); 174 this.format = format; 175 176 setAsString(turn("Array4J"), LABELROW, ARRAY4J); 177 setAsString(turn("Colt"), LABELROW, COLT); 178 setAsString(turn("commons-math"), LABELROW, COMMONSMATH); 179 setAsString(turn("EJML"), LABELROW, EJML); 180 setAsString(turn("JAMA"), LABELROW, JAMA); 181 setAsString(turn("Jampack"), LABELROW, JAMPACK); 182 setAsString(turn("JBlas"), LABELROW, JBLAS); 183 setAsString(turn("JLinAlg"), LABELROW, JLINALG); 184 setAsString(turn("JMathArray"), LABELROW, JMATHARRAY); 185 setAsString(turn("JMatrices"), LABELROW, JMATRICES); 186 setAsString(turn("JSci"), LABELROW, JSCI); 187 setAsString(turn("JScience"), LABELROW, JSCIENCE); 188 setAsString(turn("Mantissa"), LABELROW, MANTISSA); 189 setAsString(turn("MTJ"), LABELROW, MTJ); 190 setAsString(turn("ojAlgo"), LABELROW, OJALGO); 191 setAsString(turn("Orbital"), LABELROW, ORBITAL); 192 setAsString(turn("OWLPack"), LABELROW, OWLPACK); 193 setAsString(turn("Parallel Colt"), LABELROW, PARALLELCOLT); 194 setAsString(turn("SST"), LABELROW, SST); 195 setAsString(turn("UJMP"), LABELROW, UJMP); 196 setAsString(turn("vecmath"), LABELROW, VECMATH); 197 198 setAsString("version", VERSION, LABELCOLUMN); 199 setAsString("release", DATE, LABELCOLUMN); 200 setAsString("licence", LICENCE, LABELCOLUMN); 201 setAsString("Java 1.4", JAVA14, LABELCOLUMN); 202 setAsString("Java 5", JAVA5, LABELCOLUMN); 203 setAsString("Java 6", JAVA6, LABELCOLUMN); 204 setAsString("multithreaded", MULTITHREADED, LABELCOLUMN); 205 setAsString("in-place ops", INPLACE, LABELCOLUMN); 206 setAsString("cached results", CACHEDRESULTS, LABELCOLUMN); 207 setAsString("dense SA" + footnote("1", "single array"), DENSESA, LABELCOLUMN); 208 setAsString("dense AA" + footnote("2", "array of arrays"), DENSEAA, LABELCOLUMN); 209 setAsString("dense block", DENSEBLOCK, LABELCOLUMN); 210 setAsString("sparse DOK" + footnote("3", "dictionary of key-value pairs"), SPARSEDOK, 211 LABELCOLUMN); 212 setAsString("sparse LIL" + footnote("4", "list of lists"), SPARSELIL, LABELCOLUMN); 213 214 setAsString("sparse CSR" + footnote("5", "compressed sparse row/column"), SPARSECRS, 215 LABELCOLUMN); 216 setAsString("sparse CDS" + footnote("6", "compressed sparse diagonal"), SPARSECDS, 217 LABELCOLUMN); 218 setAsString("sparse Yale", SPARSEYALE, LABELCOLUMN); 219 setAsString("complex", COMPLEX, LABELCOLUMN); 220 setAsString("double", DOUBLE, LABELCOLUMN); 221 setAsString("float", FLOAT, LABELCOLUMN); 222 setAsString("BigDecimal", BIGDECIMAL, LABELCOLUMN); 223 setAsString("2D", D2, LABELCOLUMN); 224 setAsString("3D", D3, LABELCOLUMN); 225 setAsString("$>$3D", D3PLUS, LABELCOLUMN); 226 setAsString("transpose", TRANSPOSE, LABELCOLUMN); 227 setAsString("scale", SCALE, LABELCOLUMN); 228 setAsString("plus/minus", PLUSMINUS, LABELCOLUMN); 229 setAsString("inverse", INV, LABELCOLUMN); 230 setAsString("solve", SOLVE, LABELCOLUMN); 231 setAsString("SVD", SVD, LABELCOLUMN); 232 setAsString("LU", LU, LABELCOLUMN); 233 setAsString("QR", QR, LABELCOLUMN); 234 setAsString("Cholesky", CHOL, LABELCOLUMN); 235 setAsString("Eigen", EIG, LABELCOLUMN); 236 setAsString("package", PACKAGE, LABELCOLUMN); 237 238 setAsString(org.ujmp.core.UJMP.UJMPVERSION, VERSION, UJMP); 239 setAsString(small("2010"), DATE, UJMP); 240 setAsString(small("LGPL"), LICENCE, UJMP); 241 setAsString(notSupported(), JAVA14, UJMP); 242 setAsString(yes(), JAVA5, UJMP); 243 setAsString(yes(), JAVA6, UJMP); 244 setAsString(both(), MULTITHREADED, UJMP); 245 setAsString(yes(), INPLACE, UJMP); 246 setAsString(notSupported(), CACHEDRESULTS, UJMP); 247 setAsString(yes(), DENSEAA, UJMP); 248 setAsString(yes(), DENSESA, UJMP); 249 setAsString(yes(), DENSEBLOCK, UJMP); 250 setAsString(yes(), SPARSEDOK, UJMP); 251 setAsString(notSupported(), SPARSEYALE, UJMP); 252 setAsString(yes(), SPARSELIL, UJMP); 253 setAsString(notSupported(), SPARSECRS, UJMP); 254 setAsString(notSupported(), SPARSECDS, UJMP); 255 setAsString(notSupported(), COMPLEX, UJMP); 256 setAsString(yes(), DOUBLE, UJMP); 257 setAsString(yes(), FLOAT, UJMP); 258 setAsString(yes(), BIGDECIMAL, UJMP); 259 setAsString(yes(), D2, UJMP); 260 setAsString(yes(), D3, UJMP); 261 setAsString(yes(), D3PLUS, UJMP); 262 setAsString(yes(), TRANSPOSE, UJMP); 263 setAsString(yes(), SCALE, UJMP); 264 setAsString(yes(), PLUSMINUS, UJMP); 265 setAsString(yes(), INV, UJMP); 266 setAsString(squareTall(), SOLVE, UJMP); 267 setAsString(yes(), CHOL, UJMP); 268 setAsString(yes(), EIG, UJMP); 269 setAsString(all(), LU, UJMP); 270 setAsString(squareTall(), QR, UJMP); 271 setAsString(all(), SVD, UJMP); 272 setAsString("org.ujmp.core", PACKAGE, UJMP); 273 274 setAsString(small("SVN"), VERSION, ARRAY4J); 275 setAsString(small("2008"), DATE, ARRAY4J); 276 setAsString(small("BSD"), LICENCE, ARRAY4J); 277 setAsString(notSupported(), JAVA14, ARRAY4J); 278 setAsString(notSupported(), JAVA5, ARRAY4J); 279 setAsString(yes(), JAVA6, ARRAY4J); 280 setAsString(unknown() + footnote("m", "using native machine code"), MULTITHREADED, ARRAY4J); 281 setAsString(yes(), INPLACE, ARRAY4J); 282 setAsString(yes(), DENSESA, ARRAY4J); 283 setAsString(notSupported(), DENSEAA, ARRAY4J); 284 setAsString(notSupported(), DENSEBLOCK, ARRAY4J); 285 setAsString(notSupported() + footnote("i", "interface only, no implementation"), SPARSEDOK, 286 ARRAY4J); 287 setAsString(notSupported() + footnote("i", "interface only, no implementation"), 288 SPARSEYALE, ARRAY4J); 289 setAsString(notSupported() + footnote("i", "interface only, no implementation"), SPARSELIL, 290 ARRAY4J); 291 setAsString(notSupported() + footnote("i", "interface only, no implementation"), SPARSECRS, 292 ARRAY4J); 293 setAsString(notSupported() + footnote("i", "interface only, no implementation"), SPARSECDS, 294 ARRAY4J); 295 setAsString(notSupported() + footnote("i", "interface only, no implementation"), COMPLEX, 296 ARRAY4J); 297 setAsString(notSupported() + footnote("i", "interface only, no implementation"), DOUBLE, 298 ARRAY4J); 299 setAsString(yes(), FLOAT, ARRAY4J); 300 setAsString(notSupported(), BIGDECIMAL, ARRAY4J); 301 setAsString(notSupported(), MULTITHREADED, ARRAY4J); 302 setAsString(yes(), INPLACE, ARRAY4J); 303 setAsString(notSupported(), CACHEDRESULTS, ARRAY4J); 304 setAsString(yes(), PLUSMINUS, ARRAY4J); 305 setAsString(yes(), SCALE, ARRAY4J); 306 setAsString(yes(), TRANSPOSE, ARRAY4J); 307 setAsString(yes(), D2, ARRAY4J); 308 setAsString(notSupported(), D3, ARRAY4J); 309 setAsString(notSupported(), D3PLUS, ARRAY4J); 310 setAsString(notSupported(), SOLVE, ARRAY4J); 311 setAsString(notSupported(), INV, ARRAY4J); 312 setAsString(notSupported(), SVD, ARRAY4J); 313 setAsString(notSupported(), QR, ARRAY4J); 314 setAsString(notSupported(), LU, ARRAY4J); 315 setAsString(notSupported(), EIG, ARRAY4J); 316 setAsString(notSupported(), CHOL, ARRAY4J); 317 setAsString(notSupported(), PACKAGE, ARRAY4J); 318 319 setAsString(small("1.2.0"), VERSION, COLT); 320 setAsString(small("2004"), DATE, COLT); 321 setAsString(small("BSD"), LICENCE, COLT); 322 setAsString(yes(), JAVA14, COLT); 323 setAsString(yes(), JAVA5, COLT); 324 setAsString(yes(), JAVA6, COLT); 325 setAsString(notSupported(), MULTITHREADED, COLT); 326 setAsString(yes(), INPLACE, COLT); 327 setAsString(notSupported(), CACHEDRESULTS, COLT); 328 setAsString(yes() + footnote("f", "flags matrix as transposed"), TRANSPOSE, COLT); 329 setAsString(yes(), SCALE, COLT); 330 setAsString(yes(), PLUSMINUS, COLT); 331 setAsString(yes(), DENSESA, COLT); 332 setAsString(notSupported(), DENSEAA, COLT); 333 setAsString(notSupported(), DENSEBLOCK, COLT); 334 setAsString(yes(), SPARSEDOK, COLT); 335 setAsString(notSupported(), SPARSEYALE, COLT); 336 setAsString(notSupported(), SPARSELIL, COLT); 337 setAsString(notSupported(), SPARSECRS, COLT); 338 setAsString(notSupported(), SPARSECDS, COLT); 339 setAsString(notSupported(), COMPLEX, COLT); 340 setAsString(yes(), DOUBLE, COLT); 341 setAsString(notSupported(), FLOAT, COLT); 342 setAsString(notSupported(), BIGDECIMAL, COLT); 343 setAsString(yes(), D2, COLT); 344 setAsString(yes(), D3, COLT); 345 setAsString(notSupported(), D3PLUS, COLT); 346 setAsString(yes(), INV, COLT); 347 setAsString(squareTall(), SOLVE, COLT); 348 setAsString(all(), SVD, COLT); 349 setAsString(squareTall(), LU, COLT); 350 setAsString(squareTall(), QR, COLT); 351 setAsString(yes(), EIG, COLT); 352 setAsString(yes(), CHOL, COLT); 353 setAsString("org.ujmp.colt", PACKAGE, COLT); 354 355 setAsString(small("2.1"), VERSION, COMMONSMATH); 356 setAsString(small("2010"), DATE, COMMONSMATH); 357 setAsString(small("Apache"), LICENCE, COMMONSMATH); 358 setAsString(notSupported(), JAVA14, COMMONSMATH); 359 setAsString(yes(), JAVA5, COMMONSMATH); 360 setAsString(yes(), JAVA6, COMMONSMATH); 361 setAsString(notSupported(), MULTITHREADED, COMMONSMATH); 362 setAsString(yes(), INPLACE, COMMONSMATH); 363 setAsString(notSupported(), CACHEDRESULTS, COMMONSMATH); 364 setAsString(yes(), TRANSPOSE, COMMONSMATH); 365 setAsString(yes(), SCALE, COMMONSMATH); 366 setAsString(yes(), PLUSMINUS, COMMONSMATH); 367 setAsString(yes(), DENSEAA, COMMONSMATH); 368 setAsString(notSupported(), DENSESA, COMMONSMATH); 369 setAsString(yes(), DENSEBLOCK, COMMONSMATH); 370 setAsString(yes(), SPARSEDOK, COMMONSMATH); 371 setAsString(notSupported(), SPARSEYALE, COMMONSMATH); 372 setAsString(notSupported(), SPARSELIL, COMMONSMATH); 373 setAsString(notSupported(), SPARSECRS, COMMONSMATH); 374 setAsString(notSupported(), SPARSECDS, COMMONSMATH); 375 setAsString(yes(), COMPLEX, COMMONSMATH); 376 setAsString(yes(), DOUBLE, COMMONSMATH); 377 setAsString(notSupported(), FLOAT, COMMONSMATH); 378 setAsString(yes(), BIGDECIMAL, COMMONSMATH); 379 setAsString(yes(), D2, COMMONSMATH); 380 setAsString(notSupported(), D3, COMMONSMATH); 381 setAsString(notSupported(), D3PLUS, COMMONSMATH); 382 setAsString(yes(), INV, COMMONSMATH); 383 setAsString(squareTall(), SOLVE, COMMONSMATH); 384 setAsString(all(), SVD, COMMONSMATH); 385 setAsString(square() + footnote(NONSINGULARLETTER, NONSINGULARTEXT), LU, COMMONSMATH); 386 setAsString(all(), QR, COMMONSMATH); 387 setAsString(yes() + footnote("s", "symmetric matrices only"), EIG, COMMONSMATH); 388 setAsString(yes(), CHOL, COMMONSMATH); 389 setAsString("org.ujmp.commonsmath", PACKAGE, COMMONSMATH); 390 391 setAsString(small("0.12"), VERSION, EJML); 392 setAsString(small("2010"), DATE, EJML); 393 setAsString(small("LGPL"), LICENCE, EJML); 394 setAsString(notSupported(), JAVA14, EJML); 395 setAsString(notSupported(), JAVA5, EJML); 396 setAsString(yes(), JAVA6, EJML); 397 setAsString(notSupported(), MULTITHREADED, EJML); 398 setAsString(notSupported(), CACHEDRESULTS, EJML); 399 setAsString(yes(), INPLACE, EJML); 400 setAsString(yes(), DENSESA, EJML); 401 setAsString(notSupported(), DENSEAA, EJML); 402 setAsString(yes(), DENSEBLOCK, EJML); 403 setAsString(notSupported(), SPARSEDOK, EJML); 404 setAsString(notSupported(), SPARSEYALE, EJML); 405 setAsString(notSupported(), SPARSELIL, EJML); 406 setAsString(notSupported(), SPARSECRS, EJML); 407 setAsString(notSupported(), SPARSECDS, EJML); 408 setAsString(notSupported(), COMPLEX, EJML); 409 setAsString(yes(), DOUBLE, EJML); 410 setAsString(notSupported(), FLOAT, EJML); 411 setAsString(notSupported(), BIGDECIMAL, EJML); 412 setAsString(yes(), D2, EJML); 413 setAsString(notSupported(), D3, EJML); 414 setAsString(notSupported(), D3PLUS, EJML); 415 setAsString(yes(), TRANSPOSE, EJML); 416 setAsString(yes(), SCALE, EJML); 417 setAsString(yes(), PLUSMINUS, EJML); 418 setAsString(yes(), INV, EJML); 419 setAsString(squareTall(), SOLVE, EJML); 420 setAsString(all(), SVD, EJML); 421 setAsString(all(), LU, EJML); 422 setAsString(square(), QR, EJML); 423 setAsString(yes(), EIG, EJML); 424 setAsString(yes(), CHOL, EJML); 425 setAsString("org.ujmp.ejml", PACKAGE, EJML); 426 427 setAsString(small("1.0.2"), VERSION, JAMA); 428 setAsString(small("2005"), DATE, JAMA); 429 setAsString(small("PD"), LICENCE, JAMA); 430 setAsString(yes(), JAVA14, JAMA); 431 setAsString(yes(), JAVA5, JAMA); 432 setAsString(yes(), JAVA6, JAMA); 433 setAsString(notSupported(), MULTITHREADED, JAMA); 434 setAsString(notSupported(), INPLACE, JAMA); 435 setAsString(notSupported(), CACHEDRESULTS, JAMA); 436 setAsString(yes(), DENSEAA, JAMA); 437 setAsString(notSupported(), DENSESA, JAMA); 438 setAsString(notSupported(), DENSEBLOCK, JAMA); 439 setAsString(notSupported(), SPARSEDOK, JAMA); 440 setAsString(notSupported(), SPARSEYALE, JAMA); 441 setAsString(notSupported(), SPARSELIL, JAMA); 442 setAsString(notSupported(), SPARSECRS, JAMA); 443 setAsString(notSupported(), SPARSECDS, JAMA); 444 setAsString(notSupported(), COMPLEX, JAMA); 445 setAsString(yes(), DOUBLE, JAMA); 446 setAsString(notSupported(), FLOAT, JAMA); 447 setAsString(notSupported(), BIGDECIMAL, JAMA); 448 setAsString(yes(), D2, JAMA); 449 setAsString(notSupported(), D3, JAMA); 450 setAsString(notSupported(), D3PLUS, JAMA); 451 setAsString(yes(), TRANSPOSE, JAMA); 452 setAsString(yes(), SCALE, JAMA); 453 setAsString(yes(), PLUSMINUS, JAMA); 454 setAsString(yes(), INV, JAMA); 455 setAsString(squareTall(), SOLVE, JAMA); 456 setAsString(squareTall(), SVD, JAMA); 457 setAsString(squareTall(), LU, JAMA); 458 setAsString(squareTall(), QR, JAMA); 459 setAsString(yes(), EIG, JAMA); 460 setAsString(yes(), CHOL, JAMA); 461 setAsString("org.ujmp.jama", PACKAGE, JAMA); 462 463 setAsString(small("?"), VERSION, JAMPACK); 464 setAsString(small("1999"), DATE, JAMPACK); 465 setAsString(small("?"), LICENCE, JAMPACK); 466 setAsString(yes(), JAVA14, JAMPACK); 467 setAsString(yes(), JAVA5, JAMPACK); 468 setAsString(yes(), JAVA6, JAMPACK); 469 setAsString(notSupported(), MULTITHREADED, JAMPACK); 470 setAsString(notSupported(), INPLACE, JAMPACK); 471 setAsString(yes(), DENSEAA, JAMPACK); 472 setAsString(notSupported(), DENSESA, JAMPACK); 473 setAsString(notSupported(), DENSEBLOCK, JAMPACK); 474 setAsString(notSupported(), SPARSEDOK, JAMPACK); 475 setAsString(notSupported(), SPARSEYALE, JAMPACK); 476 setAsString(notSupported(), SPARSELIL, JAMPACK); 477 setAsString(notSupported(), SPARSECRS, JAMPACK); 478 setAsString(notSupported(), SPARSECDS, JAMPACK); 479 setAsString(yes(), COMPLEX, JAMPACK); 480 setAsString(yes(), DOUBLE, JAMPACK); 481 setAsString(notSupported(), FLOAT, JAMPACK); 482 setAsString(notSupported(), BIGDECIMAL, JAMPACK); 483 setAsString(yes(), D2, JAMPACK); 484 setAsString(notSupported(), D3, JAMPACK); 485 setAsString(notSupported(), D3PLUS, JAMPACK); 486 setAsString(yes(), CACHEDRESULTS, JAMPACK); 487 setAsString(yes(), TRANSPOSE, JAMPACK); 488 setAsString(yes(), PLUSMINUS, JAMPACK); 489 setAsString(yes(), SCALE, JAMPACK); 490 setAsString(yes(), INV, JAMPACK); 491 setAsString(square(), SOLVE, JAMPACK); 492 setAsString(square(), SVD, JAMPACK); 493 setAsString(all(), LU, JAMPACK); 494 setAsString(all(), QR, JAMPACK); 495 setAsString(yes(), EIG, JAMPACK); 496 setAsString(yes() + footnote("e", ERRORTEXT), CHOL, JAMPACK); 497 setAsString("org.ujmp.jampack", PACKAGE, JAMPACK); 498 499 setAsString(small("1.0.2"), VERSION, JBLAS); 500 setAsString(small("2010"), DATE, JBLAS); 501 setAsString(small("BSD"), LICENCE, JBLAS); 502 setAsString(notSupported(), JAVA14, JBLAS); 503 setAsString(yes(), JAVA5, JBLAS); 504 setAsString(yes(), JAVA6, JBLAS); 505 setAsString(yes() + footnote("m", "using native machine code"), MULTITHREADED, JBLAS); 506 setAsString(yes(), INPLACE, JBLAS); 507 setAsString(notSupported(), CACHEDRESULTS, JBLAS); 508 setAsString(yes(), DENSESA, JBLAS); 509 setAsString(notSupported(), DENSEAA, JBLAS); 510 setAsString(notSupported(), DENSEBLOCK, JBLAS); 511 setAsString(notSupported(), SPARSEDOK, JBLAS); 512 setAsString(notSupported(), SPARSEYALE, JBLAS); 513 setAsString(notSupported(), SPARSELIL, JBLAS); 514 setAsString(notSupported(), SPARSECRS, JBLAS); 515 setAsString(notSupported(), SPARSECDS, JBLAS); 516 setAsString(yes(), COMPLEX, JBLAS); 517 setAsString(yes(), DOUBLE, JBLAS); 518 setAsString(yes(), FLOAT, JBLAS); 519 setAsString(notSupported(), BIGDECIMAL, JBLAS); 520 setAsString(yes(), D2, JBLAS); 521 setAsString(notSupported(), D3, JBLAS); 522 setAsString(notSupported(), D3PLUS, JBLAS); 523 setAsString(yes(), TRANSPOSE, JBLAS); 524 setAsString(yes(), SCALE, JBLAS); 525 setAsString(yes(), PLUSMINUS, JBLAS); 526 setAsString(yes(), INV, JBLAS); 527 setAsString(square(), SOLVE, JBLAS); 528 setAsString(notSupported(), SVD, JBLAS); 529 setAsString(all(), LU, JBLAS); 530 setAsString(notSupported(), QR, JBLAS); 531 setAsString(yes() + footnote("s", "symmetric matrices only"), EIG, JBLAS); 532 setAsString(yes(), CHOL, JBLAS); 533 setAsString("org.ujmp.jblas", PACKAGE, JBLAS); 534 535 setAsString(small("0.6"), VERSION, JLINALG); 536 setAsString(small("2009"), DATE, JLINALG); 537 setAsString(small("GPL"), LICENCE, JLINALG); 538 setAsString(notSupported(), JAVA14, JLINALG); 539 setAsString(notSupported(), JAVA5, JLINALG); 540 setAsString(yes(), JAVA6, JLINALG); 541 setAsString(notSupported(), MULTITHREADED, JLINALG); 542 setAsString(notSupported(), CACHEDRESULTS, JLINALG); 543 setAsString(yes(), INPLACE, JLINALG); 544 setAsString(yes(), DENSEAA, JLINALG); 545 setAsString(notSupported(), DENSESA, JLINALG); 546 setAsString(notSupported(), DENSEBLOCK, JLINALG); 547 setAsString(notSupported(), SPARSEDOK, JLINALG); 548 setAsString(notSupported(), SPARSEYALE, JLINALG); 549 setAsString(notSupported(), SPARSELIL, JLINALG); 550 setAsString(notSupported(), SPARSECRS, JLINALG); 551 setAsString(notSupported(), SPARSECDS, JLINALG); 552 setAsString(yes(), COMPLEX, JLINALG); 553 setAsString(yes(), DOUBLE, JLINALG); 554 setAsString(notSupported(), FLOAT, JLINALG); 555 setAsString(yes(), BIGDECIMAL, JLINALG); 556 setAsString(yes(), TRANSPOSE, JLINALG); 557 setAsString(yes(), SCALE, JLINALG); 558 setAsString(yes(), PLUSMINUS, JLINALG); 559 setAsString(yes(), D2, JLINALG); 560 setAsString(notSupported(), D3, JLINALG); 561 setAsString(notSupported(), D3PLUS, JLINALG); 562 setAsString(yes(), INV, JLINALG); 563 setAsString(notSupported() + footnote("v", "only for $A \\cdot X = \\mbox{vector}$"), 564 SOLVE, JLINALG); 565 setAsString(notSupported(), SVD, JLINALG); 566 setAsString(notSupported(), LU, JLINALG); 567 setAsString(notSupported(), QR, JLINALG); 568 setAsString(notSupported(), EIG, JLINALG); 569 setAsString(notSupported(), CHOL, JLINALG); 570 setAsString("org.ujmp.jlinalg", PACKAGE, JLINALG); 571 572 setAsString(small("?"), VERSION, JMATHARRAY); 573 setAsString(small("2009"), DATE, JMATHARRAY); 574 setAsString(small("BSD"), LICENCE, JMATHARRAY); 575 setAsString(notSupported(), JAVA14, JMATHARRAY); 576 setAsString(yes(), JAVA5, JMATHARRAY); 577 setAsString(yes(), JAVA6, JMATHARRAY); 578 setAsString(notSupported(), MULTITHREADED, JMATHARRAY); 579 setAsString(notSupported(), INPLACE, JMATHARRAY); 580 setAsString(notSupported(), CACHEDRESULTS, JMATHARRAY); 581 setAsString(yes(), TRANSPOSE, JMATHARRAY); 582 setAsString(yes(), SCALE, JMATHARRAY); 583 setAsString(yes(), PLUSMINUS, JMATHARRAY); 584 setAsString(yes(), DENSEAA, JMATHARRAY); 585 setAsString(notSupported(), DENSESA, JMATHARRAY); 586 setAsString(notSupported(), DENSEBLOCK, JMATHARRAY); 587 setAsString(notSupported(), SPARSEDOK, JMATHARRAY); 588 setAsString(notSupported(), SPARSEYALE, JMATHARRAY); 589 setAsString(notSupported(), SPARSELIL, JMATHARRAY); 590 setAsString(notSupported(), SPARSECRS, JMATHARRAY); 591 setAsString(notSupported(), SPARSECDS, JMATHARRAY); 592 setAsString(notSupported(), COMPLEX, JMATHARRAY); 593 setAsString(yes(), DOUBLE, JMATHARRAY); 594 setAsString(notSupported(), FLOAT, JMATHARRAY); 595 setAsString(notSupported(), BIGDECIMAL, JMATHARRAY); 596 setAsString(yes(), D2, JMATHARRAY); 597 setAsString(notSupported(), D3, JMATHARRAY); 598 setAsString(notSupported(), D3PLUS, JMATHARRAY); 599 setAsString(yes(), INV, JMATHARRAY); 600 setAsString(squareTall(), SOLVE, JMATHARRAY); 601 setAsString(squareTall(), SVD, JMATHARRAY); 602 setAsString(squareTall(), LU, JMATHARRAY); 603 setAsString(squareTall(), QR, JMATHARRAY); 604 setAsString(yes(), EIG, JMATHARRAY); 605 setAsString(yes(), CHOL, JMATHARRAY); 606 setAsString("org.ujmp.jmatharray", PACKAGE, JMATHARRAY); 607 608 setAsString(small("0.6"), VERSION, JMATRICES); 609 setAsString(small("2004"), DATE, JMATRICES); 610 setAsString(small("LGPL"), LICENCE, JMATRICES); 611 setAsString(yes(), JAVA14, JMATRICES); 612 setAsString(yes(), JAVA5, JMATRICES); 613 setAsString(yes(), JAVA6, JMATRICES); 614 setAsString(notSupported(), MULTITHREADED, JMATRICES); 615 setAsString(notSupported(), INPLACE, JMATRICES); 616 setAsString(notSupported(), CACHEDRESULTS, JMATRICES); 617 setAsString(yes(), DENSEAA, JMATRICES); 618 setAsString(notSupported(), DENSESA, JMATRICES); 619 setAsString(notSupported(), DENSEBLOCK, JMATRICES); 620 setAsString(notSupported(), SPARSEDOK, JMATRICES); 621 setAsString(notSupported(), SPARSEYALE, JMATRICES); 622 setAsString(notSupported(), SPARSELIL, JMATRICES); 623 setAsString(notSupported(), SPARSECRS, JMATRICES); 624 setAsString(notSupported(), SPARSECDS, JMATRICES); 625 setAsString(yes(), COMPLEX, JMATRICES); 626 setAsString(yes(), DOUBLE, JMATRICES); 627 setAsString(notSupported(), FLOAT, JMATRICES); 628 setAsString(yes(), BIGDECIMAL, JMATRICES); 629 setAsString(yes(), D2, JMATRICES); 630 setAsString(notSupported(), D3, JMATRICES); 631 setAsString(notSupported(), D3PLUS, JMATRICES); 632 setAsString(yes(), TRANSPOSE, JMATRICES); 633 setAsString(yes(), PLUSMINUS, JMATRICES); 634 setAsString(yes(), SCALE, JMATRICES); 635 setAsString(yes(), INV, JMATRICES); 636 setAsString(squareTall(), SOLVE, JMATRICES); 637 setAsString(square(), SVD, JMATRICES); 638 setAsString(squareTall(), LU, JMATRICES); 639 setAsString(squareTall(), QR, JMATRICES); 640 setAsString(yes(), EIG, JMATRICES); 641 setAsString(yes(), CHOL, JMATRICES); 642 setAsString("org.ujmp.jmatrices", PACKAGE, JMATRICES); 643 644 setAsString(small("1.1"), VERSION, JSCI); 645 setAsString(small("2009"), DATE, JSCI); 646 setAsString(small("LGPL"), LICENCE, JSCI); 647 setAsString(yes(), JAVA14, JSCI); 648 setAsString(yes(), JAVA5, JSCI); 649 setAsString(yes(), JAVA6, JSCI); 650 setAsString(notSupported(), MULTITHREADED, JSCI); 651 setAsString(notSupported(), INPLACE, JSCI); 652 setAsString(notSupported(), CACHEDRESULTS, JSCI); 653 setAsString(yes(), DENSEAA, JSCI); 654 setAsString(notSupported(), DENSESA, JSCI); 655 setAsString(notSupported(), DENSEBLOCK, JSCI); 656 setAsString(yes(), SPARSEYALE, JSCI); 657 setAsString(notSupported(), SPARSEDOK, JSCI); 658 setAsString(notSupported(), SPARSELIL, JSCI); 659 setAsString(notSupported(), SPARSECRS, JSCI); 660 setAsString(notSupported(), SPARSECDS, JSCI); 661 setAsString(yes(), COMPLEX, JSCI); 662 setAsString(yes(), DOUBLE, JSCI); 663 setAsString(notSupported(), FLOAT, JSCI); 664 setAsString(notSupported(), BIGDECIMAL, JSCI); 665 setAsString(yes(), D2, JSCI); 666 setAsString(notSupported(), D3, JSCI); 667 setAsString(notSupported(), D3PLUS, JSCI); 668 setAsString(yes(), TRANSPOSE, JSCI); 669 setAsString(yes(), PLUSMINUS, JSCI); 670 setAsString(yes(), SCALE, JSCI); 671 setAsString(notSupported() + footnote("v", "only for $A \\cdot X = \\mbox{vector}$"), 672 SOLVE, JSCI); 673 setAsString(yes(), INV, JSCI); 674 setAsString(square(), SVD, JSCI); 675 setAsString(square() + footnote(NONSINGULARLETTER, NONSINGULARTEXT), LU, JSCI); 676 setAsString(square(), QR, JSCI); 677 setAsString(yes() + footnote("s", "symmetric matrices only") 678 + footnote("a", "results not directly accessible"), EIG, JSCI); 679 setAsString(yes(), CHOL, JSCI); 680 setAsString("org.ujmp.jsci", PACKAGE, JSCI); 681 682 setAsString(small("4.3.1"), VERSION, JSCIENCE); 683 setAsString(small("2007"), DATE, JSCIENCE); 684 setAsString(small("BSD"), LICENCE, JSCIENCE); 685 setAsString(notSupported(), JAVA14, JSCIENCE); 686 setAsString(yes(), JAVA5, JSCIENCE); 687 setAsString(yes(), JAVA6, JSCIENCE); 688 setAsString(yes(), MULTITHREADED, JSCIENCE); 689 setAsString(notSupported(), INPLACE, JSCIENCE); 690 setAsString(notSupported(), CACHEDRESULTS, JSCIENCE); 691 setAsString(yes(), DENSEAA, JSCIENCE); 692 setAsString(notSupported(), DENSEBLOCK, JSCIENCE); 693 setAsString(notSupported(), DENSESA, JSCIENCE); 694 setAsString(yes(), SPARSELIL, JSCIENCE); 695 setAsString(notSupported(), SPARSEYALE, JSCIENCE); 696 setAsString(notSupported(), SPARSECDS, JSCIENCE); 697 setAsString(notSupported(), SPARSECRS, JSCIENCE); 698 setAsString(yes(), SPARSEDOK, JSCIENCE); 699 setAsString(yes(), COMPLEX, JSCIENCE); 700 setAsString(yes(), DOUBLE, JSCIENCE); 701 setAsString(notSupported(), FLOAT, JSCIENCE); 702 setAsString(notSupported(), BIGDECIMAL, JSCIENCE); 703 setAsString(yes(), D2, JSCIENCE); 704 setAsString(notSupported(), D3, JSCIENCE); 705 setAsString(notSupported(), D3PLUS, JSCIENCE); 706 setAsString(yes() + footnote("f", "flags matrix as transposed"), TRANSPOSE, JSCIENCE); 707 setAsString(yes(), SCALE, JSCIENCE); 708 setAsString(yes(), PLUSMINUS, JSCIENCE); 709 setAsString(yes(), INV, JSCIENCE); 710 setAsString(square(), SOLVE, JSCIENCE); 711 setAsString(notSupported(), SVD, JSCIENCE); 712 setAsString(square() + footnote(NONSINGULARLETTER, NONSINGULARTEXT), LU, JSCIENCE); 713 setAsString(notSupported(), QR, JSCIENCE); 714 setAsString(notSupported(), EIG, JSCIENCE); 715 setAsString(notSupported(), CHOL, JSCIENCE); 716 setAsString("org.ujmp.jscience", PACKAGE, JSCIENCE); 717 718 setAsString(small("7.2"), VERSION, MANTISSA); 719 setAsString(small("2007"), DATE, MANTISSA); 720 setAsString(small("BSD"), LICENCE, MANTISSA); 721 setAsString(yes(), JAVA14, MANTISSA); 722 setAsString(yes(), JAVA5, MANTISSA); 723 setAsString(yes(), JAVA6, MANTISSA); 724 setAsString(notSupported(), MULTITHREADED, MANTISSA); 725 setAsString(notSupported(), CACHEDRESULTS, MANTISSA); 726 setAsString(yes(), INPLACE, MANTISSA); 727 setAsString(yes(), TRANSPOSE, MANTISSA); 728 setAsString(yes(), PLUSMINUS, MANTISSA); 729 setAsString(yes(), SCALE, MANTISSA); 730 setAsString(yes(), DENSESA, MANTISSA); 731 setAsString(notSupported(), DENSEAA, MANTISSA); 732 setAsString(notSupported(), DENSEBLOCK, MANTISSA); 733 setAsString(notSupported(), SPARSEDOK, MANTISSA); 734 setAsString(notSupported(), SPARSEYALE, MANTISSA); 735 setAsString(notSupported(), SPARSELIL, MANTISSA); 736 setAsString(notSupported(), SPARSECRS, MANTISSA); 737 setAsString(notSupported(), SPARSECDS, MANTISSA); 738 setAsString(notSupported(), COMPLEX, MANTISSA); 739 setAsString(yes(), DOUBLE, MANTISSA); 740 setAsString(notSupported(), FLOAT, MANTISSA); 741 setAsString(notSupported(), BIGDECIMAL, MANTISSA); 742 setAsString(yes(), D2, MANTISSA); 743 setAsString(notSupported(), D3, MANTISSA); 744 setAsString(notSupported(), D3PLUS, MANTISSA); 745 setAsString(yes(), INV, MANTISSA); 746 setAsString(square(), SOLVE, MANTISSA); 747 setAsString(notSupported(), SVD, MANTISSA); 748 setAsString(square() + footnote("a", "results not directly accessible"), LU, MANTISSA); 749 setAsString(notSupported(), QR, MANTISSA); 750 setAsString(notSupported(), EIG, MANTISSA); 751 setAsString(notSupported(), CHOL, MANTISSA); 752 setAsString("org.ujmp.mantissa", PACKAGE, MANTISSA); 753 754 setAsString(small("0.9.12"), VERSION, MTJ); 755 setAsString(small("2009"), DATE, MTJ); 756 setAsString(small("LGPL"), LICENCE, MTJ); 757 setAsString(notSupported(), JAVA14, MTJ); 758 setAsString(yes(), JAVA5, MTJ); 759 setAsString(yes(), JAVA6, MTJ); 760 setAsString(yes() + footnote("m", "using native machine code"), MULTITHREADED, MTJ); 761 setAsString(yes(), INPLACE, MTJ); 762 setAsString(notSupported(), CACHEDRESULTS, MTJ); 763 setAsString(yes(), DENSESA, MTJ); 764 setAsString(notSupported(), DENSEAA, MTJ); 765 setAsString(notSupported(), DENSEBLOCK, MTJ); 766 setAsString(yes(), SPARSECRS, MTJ); 767 setAsString(yes(), SPARSECDS, MTJ); 768 setAsString(yes(), SPARSELIL, MTJ); 769 setAsString(notSupported(), SPARSEDOK, MTJ); 770 setAsString(notSupported(), SPARSEYALE, MTJ); 771 setAsString(notSupported(), COMPLEX, MTJ); 772 setAsString(yes(), DOUBLE, MTJ); 773 setAsString(notSupported(), FLOAT, MTJ); 774 setAsString(notSupported(), BIGDECIMAL, MTJ); 775 setAsString(yes(), D2, MTJ); 776 setAsString(notSupported(), D3, MTJ); 777 setAsString(notSupported(), D3PLUS, MTJ); 778 setAsString(yes(), TRANSPOSE, MTJ); 779 setAsString(yes(), SCALE, MTJ); 780 setAsString(yes(), PLUSMINUS, MTJ); 781 setAsString(yes(), INV, MTJ); 782 setAsString(squareTall(), SOLVE, MTJ); 783 setAsString(all(), SVD, MTJ); 784 setAsString(all() + footnote("e", ERRORTEXT), LU, MTJ); 785 setAsString(squareTall(), QR, MTJ); 786 setAsString(yes() + footnote("s", "symmetric matrices only"), EIG, MTJ); 787 setAsString(yes() + footnote("e", ERRORTEXT), CHOL, MTJ); 788 setAsString("org.ujmp.mtj", PACKAGE, MTJ); 789 790 setAsString(small("29.8"), VERSION, OJALGO); 791 setAsString(small("2010"), DATE, OJALGO); 792 setAsString(small("MIT"), LICENCE, OJALGO); 793 setAsString(notSupported(), JAVA14, OJALGO); 794 setAsString(yes(), JAVA5, OJALGO); 795 setAsString(yes(), JAVA6, OJALGO); 796 setAsString(both(), MULTITHREADED, OJALGO); 797 setAsString(yes(), INPLACE, OJALGO); 798 setAsString(notSupported(), CACHEDRESULTS, OJALGO); 799 setAsString(yes() + footnote("f", "flags matrix as transposed"), TRANSPOSE, OJALGO); 800 setAsString(yes(), SCALE, OJALGO); 801 setAsString(yes(), PLUSMINUS, OJALGO); 802 setAsString(yes(), DENSESA, OJALGO); 803 setAsString(notSupported(), DENSEAA, OJALGO); 804 setAsString(notSupported(), DENSEBLOCK, OJALGO); 805 setAsString(notSupported(), SPARSECDS, OJALGO); 806 setAsString(notSupported(), SPARSECRS, OJALGO); 807 setAsString(notSupported(), SPARSEYALE, OJALGO); 808 setAsString(notSupported(), SPARSELIL, OJALGO); 809 setAsString(notSupported(), SPARSEDOK, OJALGO); 810 setAsString(yes(), COMPLEX, OJALGO); 811 setAsString(yes(), DOUBLE, OJALGO); 812 setAsString(yes(), FLOAT, OJALGO); 813 setAsString(yes(), BIGDECIMAL, OJALGO); 814 setAsString(yes(), D2, OJALGO); 815 setAsString(notSupported(), D3, OJALGO); 816 setAsString(notSupported(), D3PLUS, OJALGO); 817 setAsString(yes(), INV, OJALGO); 818 setAsString(squareTall(), SOLVE, OJALGO); 819 setAsString(all(), SVD, OJALGO); 820 setAsString(all(), LU, OJALGO); 821 setAsString(all(), QR, OJALGO); 822 setAsString(yes(), EIG, OJALGO); 823 setAsString(yes(), CHOL, OJALGO); 824 setAsString("org.ujmp.ojalgo", PACKAGE, OJALGO); 825 826 setAsString(small("1.3.0"), VERSION, ORBITAL); 827 setAsString(small("2009"), DATE, ORBITAL); 828 setAsString(small("custom"), LICENCE, ORBITAL); 829 setAsString(yes(), JAVA14, ORBITAL); 830 setAsString(yes(), JAVA5, ORBITAL); 831 setAsString(yes(), JAVA6, ORBITAL); 832 setAsString(notSupported(), MULTITHREADED, ORBITAL); 833 setAsString(notSupported(), INPLACE, ORBITAL); 834 setAsString(notSupported(), CACHEDRESULTS, ORBITAL); 835 setAsString(yes(), DENSESA, ORBITAL); 836 setAsString(yes(), DENSEAA, ORBITAL); 837 setAsString(notSupported(), DENSEBLOCK, ORBITAL); 838 setAsString(notSupported(), SPARSECDS, ORBITAL); 839 setAsString(notSupported(), SPARSECRS, ORBITAL); 840 setAsString(notSupported(), SPARSEDOK, ORBITAL); 841 setAsString(notSupported(), SPARSELIL, ORBITAL); 842 setAsString(notSupported(), SPARSEYALE, ORBITAL); 843 setAsString(yes(), COMPLEX, ORBITAL); 844 setAsString(yes(), DOUBLE, ORBITAL); 845 setAsString(notSupported(), FLOAT, ORBITAL); 846 setAsString(notSupported(), BIGDECIMAL, ORBITAL); 847 setAsString(yes(), TRANSPOSE, ORBITAL); 848 setAsString(yes(), PLUSMINUS, ORBITAL); 849 setAsString(yes(), SCALE, ORBITAL); 850 setAsString(yes(), D2, ORBITAL); 851 setAsString(yes(), D3, ORBITAL); 852 setAsString(yes(), D3PLUS, ORBITAL); 853 setAsString(yes(), INV, ORBITAL); 854 setAsString(notSupported(), SVD, ORBITAL); 855 setAsString(notSupported() + footnote("v", "only for $A \\cdot X = \\mbox{vector}$"), 856 SOLVE, ORBITAL); 857 setAsString(square() + footnote(NONSINGULARLETTER, NONSINGULARTEXT), LU, ORBITAL); 858 setAsString(notSupported(), QR, ORBITAL); 859 setAsString(notSupported(), EIG, ORBITAL); 860 setAsString(notSupported(), CHOL, ORBITAL); 861 setAsString("org.ujmp.orbital", PACKAGE, ORBITAL); 862 863 setAsString(unknown(), VERSION, OWLPACK); 864 setAsString(small("1999"), DATE, OWLPACK); 865 setAsString(unknown(), LICENCE, OWLPACK); 866 setAsString(yes(), JAVA14, OWLPACK); 867 setAsString(yes(), JAVA5, OWLPACK); 868 setAsString(yes(), JAVA6, OWLPACK); 869 setAsString(notSupported(), MULTITHREADED, OWLPACK); 870 setAsString(yes(), INPLACE, OWLPACK); 871 setAsString(notSupported(), CACHEDRESULTS, OWLPACK); 872 setAsString(yes(), DENSEAA, OWLPACK); 873 setAsString(notSupported(), DENSESA, OWLPACK); 874 setAsString(notSupported(), DENSEBLOCK, OWLPACK); 875 setAsString(notSupported(), SPARSECDS, OWLPACK); 876 setAsString(notSupported(), SPARSECRS, OWLPACK); 877 setAsString(notSupported(), SPARSEYALE, OWLPACK); 878 setAsString(notSupported(), SPARSEDOK, OWLPACK); 879 setAsString(notSupported(), SPARSELIL, OWLPACK); 880 setAsString(yes(), COMPLEX, OWLPACK); 881 setAsString(yes(), DOUBLE, OWLPACK); 882 setAsString(yes(), FLOAT, OWLPACK); 883 setAsString(notSupported(), BIGDECIMAL, OWLPACK); 884 setAsString(yes(), TRANSPOSE, OWLPACK); 885 setAsString(yes(), PLUSMINUS, OWLPACK); 886 setAsString(yes(), SCALE, OWLPACK); 887 setAsString(yes(), D2, OWLPACK); 888 setAsString(notSupported(), D3, OWLPACK); 889 setAsString(notSupported(), D3PLUS, OWLPACK); 890 setAsString(notSupported() + footnote("v", "only for $A \\cdot X = \\mbox{vector}$"), 891 SOLVE, OWLPACK); 892 setAsString(yes() + footnote("e", ERRORTEXT), INV, OWLPACK); 893 setAsString(circle() + footnote("e", ERRORTEXT), SVD, OWLPACK); 894 setAsString(notSupported(), LU, OWLPACK); 895 setAsString(circle() + footnote("u", "unuseable without documentation"), QR, OWLPACK); 896 setAsString(notSupported(), EIG, OWLPACK); 897 setAsString(notSupported(), CHOL, OWLPACK); 898 setAsString("org.ujmp.owlpack", PACKAGE, OWLPACK); 899 900 setAsString(small("0.9.4"), VERSION, PARALLELCOLT); 901 setAsString(small("2010"), DATE, PARALLELCOLT); 902 setAsString(small("BSD"), LICENCE, PARALLELCOLT); 903 setAsString(yes(), JAVA14, PARALLELCOLT); 904 setAsString(yes(), JAVA5, PARALLELCOLT); 905 setAsString(yes(), JAVA6, PARALLELCOLT); 906 setAsString(both(), MULTITHREADED, PARALLELCOLT); 907 setAsString(yes(), INPLACE, PARALLELCOLT); 908 setAsString(yes() + footnote("f", "flags matrix as transposed"), TRANSPOSE, PARALLELCOLT); 909 setAsString(yes(), SCALE, PARALLELCOLT); 910 setAsString(yes(), PLUSMINUS, PARALLELCOLT); 911 setAsString(notSupported(), CACHEDRESULTS, PARALLELCOLT); 912 setAsString(yes(), DENSESA, PARALLELCOLT); 913 setAsString(yes(), DENSEAA, PARALLELCOLT); 914 setAsString(notSupported(), DENSEBLOCK, PARALLELCOLT); 915 setAsString(yes(), SPARSECRS, PARALLELCOLT); 916 setAsString(yes(), SPARSELIL, PARALLELCOLT); 917 setAsString(yes(), SPARSEDOK, PARALLELCOLT); 918 setAsString(notSupported(), SPARSEYALE, PARALLELCOLT); 919 setAsString(notSupported(), SPARSECDS, PARALLELCOLT); 920 setAsString(yes(), COMPLEX, PARALLELCOLT); 921 setAsString(yes(), DOUBLE, PARALLELCOLT); 922 setAsString(yes(), FLOAT, PARALLELCOLT); 923 setAsString(notSupported(), BIGDECIMAL, PARALLELCOLT); 924 setAsString(yes(), D2, PARALLELCOLT); 925 setAsString(yes(), D3, PARALLELCOLT); 926 setAsString(notSupported(), D3PLUS, PARALLELCOLT); 927 setAsString(yes(), INV, PARALLELCOLT); 928 setAsString(squareTall(), SOLVE, PARALLELCOLT); 929 setAsString(all(), SVD, PARALLELCOLT); 930 setAsString(squareTall(), LU, PARALLELCOLT); 931 setAsString(squareTall(), QR, PARALLELCOLT); 932 setAsString(yes(), EIG, PARALLELCOLT); 933 setAsString(yes(), CHOL, PARALLELCOLT); 934 setAsString("org.ujmp.parallelcolt", PACKAGE, PARALLELCOLT); 935 936 setAsString(small("1.10"), VERSION, SST); 937 setAsString(small("2009"), DATE, SST); 938 setAsString(small("LGPL"), LICENCE, SST); 939 setAsString(notSupported(), JAVA14, SST); 940 setAsString(yes() + footnote("j", "jar does not work with Java 5"), JAVA5, SST); 941 setAsString(yes(), JAVA6, SST); 942 setAsString(notSupported(), MULTITHREADED, SST); 943 setAsString(yes(), INPLACE, SST); 944 setAsString(yes(), TRANSPOSE, SST); 945 setAsString(yes(), SCALE, SST); 946 setAsString(yes(), PLUSMINUS, SST); 947 setAsString(notSupported(), CACHEDRESULTS, SST); 948 setAsString(yes(), DENSESA, SST); 949 setAsString(notSupported(), DENSEAA, SST); 950 setAsString(notSupported(), DENSEBLOCK, SST); 951 setAsString(yes(), SPARSEDOK, SST); 952 setAsString(notSupported(), SPARSELIL, SST); 953 setAsString(notSupported(), SPARSEYALE, SST); 954 setAsString(notSupported(), SPARSECDS, SST); 955 setAsString(notSupported(), SPARSECRS, SST); 956 setAsString(yes(), COMPLEX, SST); 957 setAsString(yes(), DOUBLE, SST); 958 setAsString(notSupported(), FLOAT, SST); 959 setAsString(notSupported(), BIGDECIMAL, SST); 960 setAsString(yes(), D2, SST); 961 setAsString(yes(), D3, SST); 962 setAsString(yes(), D3PLUS, SST); 963 setAsString(yes(), INV, SST); 964 setAsString(notSupported(), SOLVE, SST); 965 setAsString(all(), SVD, SST); 966 setAsString(notSupported(), LU, SST); 967 setAsString(notSupported(), QR, SST); 968 setAsString(yes(), EIG, SST); 969 setAsString(notSupported(), CHOL, SST); 970 setAsString("org.ujmp.sst", PACKAGE, SST); 971 972 setAsString(small("1.5.1"), VERSION, VECMATH); 973 setAsString(small("2007"), DATE, VECMATH); 974 setAsString(small("other"), LICENCE, VECMATH); 975 setAsString(notSupported(), JAVA14, VECMATH); 976 setAsString(yes(), JAVA5, VECMATH); 977 setAsString(yes(), JAVA6, VECMATH); 978 setAsString(notSupported(), MULTITHREADED, VECMATH); 979 setAsString(yes(), INPLACE, VECMATH); 980 setAsString(yes(), TRANSPOSE, VECMATH); 981 setAsString(notSupported(), SCALE, VECMATH); 982 setAsString(yes(), PLUSMINUS, VECMATH); 983 setAsString(notSupported(), CACHEDRESULTS, VECMATH); 984 setAsString(yes(), DENSEAA, VECMATH); 985 setAsString(notSupported(), DENSESA, VECMATH); 986 setAsString(notSupported(), DENSEBLOCK, VECMATH); 987 setAsString(notSupported(), SPARSEDOK, VECMATH); 988 setAsString(notSupported(), SPARSELIL, VECMATH); 989 setAsString(notSupported(), SPARSECDS, VECMATH); 990 setAsString(notSupported(), SPARSECRS, VECMATH); 991 setAsString(notSupported(), SPARSEYALE, VECMATH); 992 setAsString(notSupported(), COMPLEX, VECMATH); 993 setAsString(yes(), DOUBLE, VECMATH); 994 setAsString(notSupported(), FLOAT, VECMATH); 995 setAsString(notSupported(), BIGDECIMAL, VECMATH); 996 setAsString(yes(), D2, VECMATH); 997 setAsString(notSupported(), D3, VECMATH); 998 setAsString(notSupported(), D3PLUS, VECMATH); 999 setAsString(yes(), INV, VECMATH); 1000 setAsString(notSupported(), SOLVE, VECMATH); 1001 setAsString(circle() + footnote("e", ERRORTEXT), SVD, VECMATH); 1002 setAsString(square() + footnote(NONSINGULARLETTER, NONSINGULARTEXT), LU, VECMATH); 1003 setAsString(notSupported(), QR, VECMATH); 1004 setAsString(notSupported(), EIG, VECMATH); 1005 setAsString(notSupported(), CHOL, VECMATH); 1006 setAsString("org.ujmp.vecmath", PACKAGE, VECMATH); 1007 1008 } 1009 1010 public String yes() { 1011 switch (format) { 1012 case LATEX: 1013 return "\\bf{$+$}"; 1014 default: 1015 return "yes"; 1016 } 1017 } 1018 1019 public String both() { 1020 switch (format) { 1021 case LATEX: 1022 return "\\bf{$+/-$}"; 1023 default: 1024 return "configurable"; 1025 } 1026 } 1027 1028 public String all() { 1029 switch (format) { 1030 case LATEX: 1031 return "\\scalebox{0.6}[1.0]{$\\square$}\\,$\\square$\\,\\scalebox{1.0}[0.6]{$\\square$}"; 1032 default: 1033 return "all"; 1034 } 1035 } 1036 1037 public String squareTall() { 1038 switch (format) { 1039 case LATEX: 1040 return "\\scalebox{0.6}[1.0]{$\\square$}\\,$\\square$"; 1041 default: 1042 return "square, tall"; 1043 } 1044 } 1045 1046 public String square() { 1047 switch (format) { 1048 case LATEX: 1049 return "$\\square$"; 1050 default: 1051 return "square"; 1052 } 1053 } 1054 1055 public String tall() { 1056 switch (format) { 1057 case LATEX: 1058 return "$\\tall$"; 1059 default: 1060 return "tall"; 1061 } 1062 } 1063 1064 public String fat() { 1065 switch (format) { 1066 case LATEX: 1067 return "$\\fat$"; 1068 default: 1069 return "fat"; 1070 } 1071 } 1072 1073 public String circle() { 1074 switch (format) { 1075 case LATEX: 1076 return "$\\circ$"; 1077 default: 1078 return "square"; 1079 } 1080 } 1081 1082 public String notSupported() { 1083 switch (format) { 1084 case LATEX: 1085 return "\\bf{$-$}"; 1086 default: 1087 return "yes"; 1088 } 1089 } 1090 1091 public String unknown() { 1092 switch (format) { 1093 default: 1094 return "?"; 1095 } 1096 } 1097 1098 public String turn(String text) { 1099 switch (format) { 1100 case LATEX: 1101 return "\\begin{turn}{90}" + text + "\\end{turn}"; 1102 default: 1103 return ""; 1104 } 1105 } 1106 1107 public String small(String text) { 1108 switch (format) { 1109 case LATEX: 1110 return "\\small " + text; 1111 default: 1112 return text; 1113 } 1114 } 1115 1116 public String footnote(String footnote, String text) { 1117 switch (format) { 1118 case LATEX: 1119 String f = "\\footnotesize{$^\\mathrm{" + footnote + "}$ " + text + "}"; 1120 if (!footnotes.contains(f)) { 1121 footnotes.add(f); 1122 } 1123 return "$^{\\mathrm{" + footnote + "}}$"; 1124 default: 1125 f = footnote + " " + text; 1126 if (!footnotes.contains(f)) { 1127 footnotes.add(f); 1128 } 1129 return text; 1130 } 1131 } 1132 1133 public List<String> getFootnotes() { 1134 return footnotes; 1135 } 1136 1137 public static void main(String[] args) throws Exception { 1138 MatrixLibraries ml = new MatrixLibraries(MatrixLibrariesFormat.LATEX); 1139 Matrix m = ml.deleteRows(Ret.NEW, ml.getRowCount() - 1); 1140 String s = m.exportToString(FileFormat.TEX); 1141 s = s.replaceAll("table", "sidewaystable"); 1142 s = s.replaceAll("\\\\centering", ""); 1143 s = s.replaceAll("\\\\toprule", ""); 1144 s = s 1145 .replaceAll( 1146 "\\\\begin\\{tabular\\}", 1147 "\\\\caption{Overview of matrix libraries in Java}\n\\\\bigskip\n\\\\begin{centering}\n\\\\scalebox{0.8}{%\n\\\\begin{tabular}"); 1148 s = s.replaceAll("latest version", "\\\\toprule\nlatest version"); 1149 s = s.replaceAll("\\\\end\\{sidewaystable\\}", ""); 1150 s = s.replaceAll("\\\\end\\{tabular\\}", "\\\\end{tabular}}\n\\\\end{centering}"); 1151 s = s.replaceAll("version &", "\\\\toprule\nversion &"); 1152 s = s.replaceAll("Java 1.4 &", "\\\\midrule\nJava 1.4 &"); 1153 s = s.replaceAll("multithreaded &", "\\\\midrule\nmultithreaded &"); 1154 s = s.replaceAll("dense SA", "\\\\midrule\ndense SA"); 1155 s = s.replaceAll("sparse DOK", "\\\\midrule\nsparse DOK"); 1156 s = s.replaceAll("double &", "\\\\midrule\ndouble &"); 1157 s = s.replaceAll("2D &", "\\\\midrule\n2D &"); 1158 s = s.replaceAll("transpose &", "\\\\midrule\ntranspose &"); 1159 s = s.replaceAll("inverse &", "\\\\midrule\ninverse &"); 1160 s = s + "\\medskip\n"; 1161 s = s 1162 + "\\begin{tabular}{p{0.25\\textwidth}p{0.25\\textwidth}p{0.25\\textwidth}p{0.25\\textwidth}}\n"; 1163 s += "\\renewcommand{\\tabcolsep}{30pt}"; 1164 List<String> fn = ml.getFootnotes(); 1165 Collections.sort(fn); 1166 for (int i = 0; i < fn.size(); i++) { 1167 String f = fn.get(i); 1168 s = s + f; 1169 if (i % 4 == 3) { 1170 s = s + "\\\\\n"; 1171 } else { 1172 s = s + " & "; 1173 } 1174 } 1175 s = s + "\\end{tabular}\n"; 1176 s = s + "\\end{sidewaystable}"; 1177 System.out.println(s); 1178 } 1179 1180 public long getColumnForPackage(String label) { 1181 for (long c = getColumnCount(); --c != -1;) { 1182 String p = getAsString(PACKAGE, c); 1183 if (label.equals(p)) { 1184 return c; 1185 } 1186 } 1187 return -1; 1188 } 1189 }