Yorick es un lenguaje de programación interpretado diseñado para cálculos numéricos , representación gráfica y control de grandes códigos de simulación científica. Es bastante rápido gracias a su sintaxis de matrices y extensible mediante rutinas en C o Fortran . Fue creado en 1996 por David H. Munro del Laboratorio Nacional Lawrence Livermore .
Características
Indexación
Yorick es muy hábil para manipular elementos en matrices N-dimensionales de forma práctica gracias a su potente sintaxis.
Se puede acceder a varios elementos simultáneamente:
> x = [ 1 , 2 , 3 , 4 , 5 , 6 ]; > x [1,2,3,4,5,6] > x ( 3 : 6 ) [3,4,5,6] > x ( 3 : 6 : 2 ) [3,5] > x ( 6 : 3 : -2 ) [6,4]- Elementos arbitrarios
> x = [[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]] > x [[1,2,3],[4,5,6]] > x ([ 2 , 1 ],[ 1 , 2 ]) [[2,1],[5,4]] > lista = donde ( 1 < x ) > lista [2,3,4,5,6] > y = x ( lista ) > y [2,3,4,5,6]- Pseudoíndice
Al igual que el "threading" en PDL y la "broadcasting" en Numpy , Yorick tiene un mecanismo para hacer esto:
> x = [ 1 , 2 , 3 ] > x [1,2,3] > y = [[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]] > y [[1,2,3],[4,5,6]] > y ( - ,) [[[1],[2],[3]],[[4],[5],[6]]] > x ( - ,) [[1],[2],[3]] > x (, - ) [[1,2,3]] > x (, - ) / y [[1,1,1],[0,0,0]] > y = [[ 1 . , 2 , 3 ],[ 4 , 5 , 6 ]] > x (, - ) / y [[1,1,1],[0.25,0.4,0.5]]- Índice de caucho
"." es un índice elástico para representar cero o más dimensiones de la matriz.
> x = [[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]] > x [[1,2,3],[4,5,6]] > x ( .. , 1 ) [1,2,3] > x ( 1 , .. ) [1,4] > x ( 2 , .. , 2 ) 5"*" es una especie de índice flexible para remodelar una porción (submatriz) de una matriz a un vector.
> x ( * ) [1,2,3,4,5,6]- multiplicación de tensores
La multiplicación de tensores se realiza de la siguiente manera en Yorick:
P(,+, )*Q(, +)
medio
> x = [[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]] > x [[1,2,3],[4,5,6]] > y = [[ 7 , 8 ],[ 9 , 10 ],[ 11 , 12 ]] > x (, + ) * y ( + ,) [[39,54,69],[49,68,87],[59,82,105]] > x ( + ,) * y (, + ) [[58,139],[64,154]]Enlaces externos
- Revista Linux
- Tutorial de Yorick en JehTech
- lenguajes de programación de matrices
- Intérpretes de código abierto y libre
- Laboratorio Nacional Lawrence Livermore
- Lenguajes de programación creados en 1996