This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Designed by | David H. Munro |
---|---|
First appeared | 1996; 29 years ago (1996) |
Stable release | 2.2.04 / May 2015; 9 years ago (2015-05) |
OS | Unix-like systems including macOS, Microsoft Windows |
License | BSD |
Filename extensions | .i |
Website | github |
Yorick is an interpreted programming language designed for numerics, graph plotting, and steering large scientific simulation codes. It is quite fast due to array syntax, and extensible via C or Fortran routines. It was created in 1996 by David H. Munro of Lawrence Livermore National Laboratory.
Features
Indexing
Yorick is good at manipulating elements in N-dimensional arrays conveniently with its powerful syntax.
Several elements can be accessed all at once:
> x=; > x > x(3:6) > x(3:6:2) > x(6:3:-2)
- Arbitrary elements
> x=,] > x ,] > x(,) ,] > list=where(1<x) > list > y=x(list) > y
- Pseudo-index
Like "theading" in PDL and "broadcasting" in Numpy, Yorick has a mechanism to do this:
> x= > x > y=,] > y ,] > y(-,) ,,],,,]] > x(-,) ,,] > x(,-) ] > x(,-)/y ,] > y=,] > x(,-)/y ,]
- Rubber index
".." is a rubber-index to represent zero or more dimensions of the array.
> x=,] > x ,] > x(..,1) > x(1,..) > x(2,..,2) 5
"*" is a kind of rubber-index to reshape a slice(sub-array) of array to a vector.
> x(*)
- Tensor multiplication
Tensor multiplication is done as follows in Yorick:
P(,+, )*Q(, +)
means
> x=,] > x ,] > y=,,] > x(,+)*y(+,) ,,] > x(+,)*y(,+) ,]
External links
Lawrence Livermore National Laboratory | |||||
---|---|---|---|---|---|
Facilities | |||||
Supercomputers | |||||
Products |
| ||||
People | |||||
Related |