Articulo de referencia

Yorick (lenguaje de programación)

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...

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(, +)

medioj=1j=nortePAGijklQmetronortej{\displaystyle \sum _{j=1}^{j=N}{P_{ijkl}Q_{mnj}}}

> 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]]
  • Revista Linux
  • Tutorial de Yorick en JehTech