Yorick (programming language)

From Seo Wiki - Search Engine Optimization and Programming Languages
Jump to navigationJump to search
Yorick
Usual file extensions .i
Appeared in 1996
Designed by David H. Munro
Stable release 2.1.05 (January 10, 2008)
OS Unix, Linux, Mac, Windows
License BSD
Website Yorick Home Page

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.

Range of indices

Several elements can be accessed all at once:

> 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]
Arbitrary elements
> x=[[1,2,3],[4,5,6]]
> x
[[1,2,3],[4,5,6]]
> x([2,1],[1,2])
[[2,1],[5,4]]
> list=where(1<x)
> list
[2,3,4,5,6]
> y=x(list)
> y
[2,3,4,5,6]
Pseudo-index

Like "theading" in PDL(Perl Data Language) and "broadcasting" in Numpy ( Numeric extension for Python), Yorick has a mechanism to do this:

> 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]]
Rubber index

".." is a rubber-index to represent zero or more dimensions of the array.

> 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

"*" is a kind of rubber-index to reshape a slice(sub-array) of array to a vector.

> x(*)
[1,2,3,4,5,6]
Tensor multiplication

Tensor multiplication is done as follows in Yorick:

P(,+,,)*Q(,,+)

means <math>\sum_{j=1}^{j=N}{P_{ijkl}Q_{mnj}}</math>

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

External links


fr:Yorick ms:Bahasa pengaturcaraan Yorick pt:Yorick

If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...