Julia is a new open-source programming/scripting language designed for high-performance scientific computing. The goal is to combine the simplicity of Python with the performance approaching that of statically-compiled languages like C.
Julia has a number of other attractive features including:
- Dynamic type system
- Powerful shell-like capabilities for managing other processes
- Designed for parallelism and distributed computation
- Automatic generation of efficient, specialized code for different argument types
- Elegant and extensible conversions and promotions for numeric and other types
A simple interface to Julia has been added to Madagascar. It can be easily extended to include other functions from the Madagascar library. An example test script is shown below:
#!/usr/bin/env julia
using m8r
m8r.init()
inp = m8r.input("in")
out = m8r.output("out")
n1 = m8r.histint(inp,"n1")
n2 = m8r.leftsize(inp,1)
clip = m8r.getfloat("clip")
trace = Array(Float32,n1)
for i2 in 1:n2
m8r.floatread(trace,n1,inp)
trace = clamp(trace,-clip,clip)
m8r.floatwrite(trace,n1,out)
end
Compare it with scripts or programs in other languages.