Tmv

Matrice de modèle / Bibliothèque de vecteur pour C ++
Télécharger maintenant

Tmv Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • GPL
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Mike Jarvis
  • Site Internet de l'éditeur:
  • Systèmes d'exploitation:
  • Mac OS X
  • Taille du fichier:
  • 1.7 MB

Tmv Mots clés


Tmv La description

matrice modèle / bibliothèque de vecteur pour C ++ TMV est une source libre et ouvert algèbre linéaire bibliothèque qui utilise la surcharge de l'opérateur, les vues et l'évaluation retardée pour simplifier les expressions vectorielles et matricielles en C ++. TMV est bien documenté et peut éventuellement appeler optimisés BLAS / LAPACK pour accélérer le temps d'exécution. Voici quelques caractéristiques principales de « TMV »: · La surcharge de l'opérateur: Une expression comme v2 = x * m * v1 doit produire un code correct et rapide. (Non) temporaires · Les types complexes: mélange des types complexes et réels dans une déclaration arithmétique devrait être légal. · Décompositions: Division devrait se traduire par la résolution d'une équation matricielle, effectuant automatiquement une LU, QR, Cholesky ou décomposition en valeurs singulières de le faire. · Vitesse: Le code doit être rapide pour les grandes matrices. En règle générale, ce moyen d'appel BLAS et routines LAPACK dans les coulisses. · Évaluation différée: (aka évaluation paresseuse) L'expression v2 = x * m * v1 par exemple inlines directement à MultMV (x, m, v1, v2) qui effectue le calcul réel, donc il n'y a pas d'impact sur les performances de la lisibilité de la les opérateurs. · Modèles: Comme son nom l'indique TMV, le type des éléments dans un vecteur ou une matrice est un modèle. Ainsi, vous pouvez avoir Matrix, Matrix, Matrix, ou même utiliser un certain type défini par l'utilisateur (par exemple. Quad pour une classe quad-précision 16 octets) Matrix. · Vues: Il y a à la fois constante et vues mutables dans un vecteur ou d'une matrice. Ainsi, des expressions comme m.row (3) + = 4. * m.row (0) et m2 * = m.Transpose () les choses évidentes. · Division Matrix: L'expression x = b / A peut être utilisé pour résoudre l'équation matricielle Ax = b. Les méthodes de contrôle pour A peut être utilisé pour lui dire que la décomposition à utiliser pour trouver la solution. Il y a aussi des contrôles pour sauver la décomposition pour une utilisation ultérieure répétée, et même de faire la décomposition en place pour économiser sur le stockage. · Le stockage flexible: Une matrice peut être déclarée soit rangée ou colonne principale majeur. matrices bande permettent également pour le stockage diagonale majeure. · Indexation flexible: Vous pouvez spécifier que vous souhaitez accéder à une matrice en utilisant soit la convention normale C (indexation basee sur 0) ou la convention Fortran (indexation basée sur 1). · Vérification Alias: De nombreux paquets de matrice m * = calculate m de manière incorrecte. TMV automatiquement vérifie si deux objets dans un calcul utilisent le même stockage et crée au besoin temporaires. Il vérifie que l'adresse du premier élément, de sorte que vous pouvez toujours bousiller. Mais la plupart du temps, c'est assez bon. · BLAS / LAPACK: La bibliothèque peut être compilé pour appeler BLAS et / ou des routines LAPACK. Mais si vous ne les avez pas, le code interne fonctionnera également. La plupart des algorithmes internes sont aussi rapides que LAPACK. Mais optimisés routines BLAS sont généralement beaucoup plus rapide. Ainsi, la compilation avec au moins une bibliothèque BLAS est recommandée si la vitesse est importante pour vous. Quoi de neuf dans cette version: · Correction d'une erreur avec m.DivIsSet (); · Correction de la documentation concernant l'accès m.SVD (), en particulier que S est maintenant un DiagMatrix, plutôt qu'un vecteur. · Modification du comportement des méthodes comme m.SVD (). Maintenant, si SV n'a pas déjà été défini, il sera mis, plutôt que de donner une erreur. · Ajoutée méthode ListInit pour initialiser un vecteur ou une matrice. · Amélioration de la classe SmallMatrix. Maintenant, il ne dérive pas de GenMatrix (ou même BaseMatrix), supprimant ainsi la table virtuelle. Cela accélère considérablement beaucoup de calculs. J'ai aussi spécialisé des routines pour les matrices 2x2 et 3x3, comme Det et inverse. La mise en garde est que certaines choses qui étaient auparavant possibles avec SmallMatrix ne sont pas maintenant. Plus important encore, les résultats arithmétiques ne peuvent pas être automatiquement instanciés plus. Ils doivent être affectés à un emplacement, soit SmallMatrix ou Matrix. J'ai aussi inline toutes les routines de division, plutôt que de l'avoir appeler les routines régulières de la division Matrix. · Suppression de certaines commandes Viewof qui sont plus clairs avec une notation différente. · Correction de problèmes avec les fonctions LAPACK dstegr et sstegr. Maintenant TMV peut détecter quand stegr échoue et exécutez le stedc autre à la place. · Option d'installation ajoutée. · Ajout de la possibilité d'utiliser des versions Fortran de BLAS et LAPACK. · Inclure les fichiers CMakeLists.txt pour les installations de CMake. · Inclure .vcproj et les fichiers .vcsln pour les installations de Visual C ++.


Tmv Logiciels associés