17 votos

¿Qué bibliotecas matemáticas de C++ suelen utilizar los cuantos?

Antes de marcar la pregunta como fuera de tema, por favor léala - es es En realidad, relacionado con el quantum.

Básicamente, estoy trabajando en una aplicación que escupe un montón de matemáticas en C++. Cuando se trata de cosas simples como exponentes y trigonometría, puedo usar una función STL. Pero cuando se trata de cosas como operaciones matriciales o distribuciones normales o cualquier otra cosa que no es parte de la STL, no estoy muy seguro de qué biblioteca para apoyar.

Ese es el motivo de esta pregunta: me gustaría saber qué tipo de librerías de C++ suelen utilizar más los quants (además de la STL y demás). Mi idea es dar soporte a las más comunes. (Estoy pensando en cosas como BLAS, MKL, Boost.Math, etc.)

Por cierto, si alguien está interesado, aquí hay un resumen de lo que estoy construyendo.

0 votos

Parece interesante.

0 votos

Hola Dmitri, esta pregunta probablemente recibe una cantidad decente de tráfico y actividad en este sitio y el enlace hacia el final de su pregunta parece estar roto. Si eso es a propósito, en el sentido de que lo has eliminado porque tiene información sensible, entonces sería útil eliminar esa línea por completo. Sin embargo, si no es el caso, arreglar el enlace sería beneficioso.

21voto

Vitalik Puntos 184

Para el álgebra lineal, etc., soy partidario de Armadillo con Eigen como alternativa. Ambos son modernos (por ejemplo, con plantillas), se desarrollan activamente y tienen un rendimiento bastante alto.

Me gusta mi C++ junto con R y estoy detrás de algunos proyectos como Rcpp y RInside que facilitan esa integración; RcppArmadillo entonces trae Armadillo a R.

Para las cosas de cuanta, hay por supuesto QuantLib y mi (demasiado lento :-/) RQuantLib .

0 votos

Hola Dirk, pensaba que R ya utilizaba BLAS. Si es así, ¿qué añade Armadillo para un usuario de R?

3 votos

Ayuda a mirarlo de otra manera: RcppArmadillo le ayuda a escribir álgebra lineal simple en C++, casi al estilo de Matlab, que es rápido en C++. En tiempo de ejecución, se referirá a cualquier BLAS que utilice R, que bien puede ser optimizado, multinúcleo, ... como Goto o MKL. ¿Tiene sentido? Así que el punto es que cuando necesitas codificar algo que R aún no hace, o lo hace muy lentamente, la integración RcppArmadillo hace que sea bastante fácil hacer el trabajo.

0 votos

Entonces, sólo defiendes C++ sobre R, ¿eh? ;)

11voto

Can Berk Güder Puntos 661

Lo que uso en mi trabajo:

  • impulso (la parte matemática)

  • Eigen

  • gsl

  • glpk

y un código heredado que da miedo ;-)

9voto

offby1 Puntos 206

El NAG se utiliza con bastante frecuencia

5voto

Ant Puntos 121

Para muchos procedimientos numéricos se puede enlazar contra Octava bibliotecas si Octave está instalado.

2 votos

Aunque técnicamente es cierto, debe tener en cuenta que Octave está escrito para dar soporte a su intérprete, no para proporcionar una API. De ahí el poco uso de Octave como biblioteca en el sentido de la pregunta original.

2voto

Leahn Novash Puntos 1151

También están las bibliotecas matemáticas de Intel.

Ver: https://software.intel.com/en-us/mkl

1 votos

¿Podría proporcionar algunos enlaces para mejorar un poco el contenido de su respuesta?

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X