FISH Functions

FISH language intrinsics are listed by group below. Beneath these, for convenience, the groups of general element intrinsics are also listed.

The type specifiers used in the FISH function signatures are given in the “FISH Type Index” section.

Array Utilities

Arrays are described under Arrays in the FISHData Types” section.

array.command(ARR_PNT)
array.convert(MAT_PNT/TEN_PNT)
array.copy(ARR_PNT)
array.create(INT<,NUM>)
array.delete(ARR_PNT)
array.dim(ARR_PNT)
array.size(ARR_PNT,INT)

Component Utilities

Vectors are described under Vectors in the FISHData Types” section.

comp(VEC/MAT_PNT/TEN_PNT,INT<,INT>)

Constructors

boolean(BOOL/NUM/PNT)
false
float(BOOL/NUM/STR)
index(NUM/STR)
int(BOOL/NUM/STR)
null
true
vector(ARR_PNT/MAT_PNT/NUM<,NUM><,NUM>)

Data Utilities

data.label.arrow(UDL_PNT)
data.label.create(VEC<,INT/STR>)
data.label.delete(UDL_PNT)
data.label.end(UDL_PNT<,INT>)
data.label.find(INT/STR)
data.label.head
data.label.list
data.label.maxid
data.label.name(UDL_PNT)
data.label.next(UDL_PNT)
data.label.num
data.label.pos(UDL_PNT<,INT>)
data.label.text(UDL_PNT)
data.label.typeid
data.scalar.create(VEC)
data.scalar.delete(UDS_PNT)
data.scalar.extra(UDS_PNT<,INT>)
data.scalar.find(INT)
data.scalar.group(UDS_PNT<,INT/STR>)
data.scalar.group.remove(UDS_PNT,INT/STR)
data.scalar.head
data.scalar.id(UDS_PNT)
data.scalar.isgroup(UDS_PNT,INT/STR<,INT/STR>)
data.scalar.list
data.scalar.maxid
data.scalar.near(VEC<,FLT>)
data.scalar.next(UDS_PNT)
data.scalar.num
data.scalar.pos(UDS_PNT<,INT>)
data.scalar.typeid
data.scalar.value(UDS_PNT)
data.tensor.create(VEC)
data.tensor.delete(UDT_PNT)
data.tensor.extra(UDT_PNT<,INT>)
data.tensor.find(INT)
data.tensor.group(UDT_PNT<,INT/STR>)
data.tensor.group.remove(UDT_PNT,INT/STR)
data.tensor.head
data.tensor.id(UDT_PNT)
data.tensor.isgroup(UDT_PNT,INT/STR<,INT/STR>)
data.tensor.list
data.tensor.maxid
data.tensor.near(VEC<,FLT>)
data.tensor.next(UDT_PNT)
data.tensor.num
data.tensor.pos(UDT_PNT<,INT>)
data.tensor.typeid
data.tensor.value(UDT_PNT<,INT<,INT>>)
data.vector.create(VEC)
data.vector.ddir(UDV_PNT)(3D only)
data.vector.delete(UDV_PNT)
data.vector.dip(UDV_PNT)
data.vector.extra(UDV_PNT<,INT>)
data.vector.find(INT)
data.vector.group(UDV_PNT<,INT/STR>)
data.vector.group.remove(UDV_PNT,INT/STR)
data.vector.head
data.vector.id(UDV_PNT)
data.vector.isgroup(UDV_PNT,INT/STR<,INT/STR>)
data.vector.list
data.vector.maxid
data.vector.near(VEC<,FLT>)
data.vector.next(UDV_PNT)
data.vector.num
data.vector.pos(UDV_PNT<,INT>)
data.vector.typeid
data.vector.value(UDV_PNT<,INT>)

File Utilities

file.close(<FILE_PNT>)
file.open(STR,INT,INT)
file.open.pointer(STR,INT,INT)
file.pos(<FILE_PNT>)
file.read(ARR_PNT/STR,INT<,FILE_PNT/ARR_PNT><,INT><,INT>)
file.write(ARR_PNT/STR,INT<,FILE_PNT/ARR_PNT><,INT><,INT>)

Global Utilities

global.cycle
global.deterministic
global.dim
global.fos
global.gravity(<INT>)
global.step
global.threads
global.timestep
global.title

IO Utilities

io.dialog.in(STR<,STR>)
io.dialog.message(STR,STR,INT)
io.dialog.notify(INT,INT,STR)
io.in(STR)
io.input(STR)
io.out(ANY)

List Utilities

list.find(LIST,INT)
list.find.name(LIST,INT/STR)
list.size(LIST)

Mail Utilities

mail.account(STR)
mail.attachment.add(STR)
mail.attachment.delete(STR)
mail.body(BOOL,STR)
mail.clear
mail.domain(STR)
mail.from(STR)
mail.host(STR)
mail.password(STR)
mail.port(INT)
mail.recipient.add(STR,STR)
mail.recipient.delete(STR,STR)
mail.send
mail.subject(STR)

Map Utilities

Maps are described under Maps in the FISHData Types” section.

map(NUM/STR,ANY<,NUM/STR/ANY>)
map.add(MAP,NUM/STR,ANY)
map.has(MAP,NUM/STR)
map.keys(MAP)
map.remove(MAP,NUM/STR)
map.size(MAP)
map.value(MAP,NUM/STR)

Math Utilities

math.aangle.to.euler(VEC)
math.abs(NUM)
math.acos(NUM)
math.and(INT,INT)
math.area.intersect.poly.poly(MAP,MAP)
math.area.poly(MAP)
math.asin(NUM)
math.atan(NUM)
math.atan2(NUM,NUM)
math.ceiling(NUM)
math.closest.segment.point(VEC,VEC,VEC)
math.closest.triangle.point(VEC,VEC,VEC,VEC)
math.cos(NUM)
math.cosh(NUM)
math.cross(VEC,VEC)
math.ddir.from.normal(VEC)
math.degrad
math.dip.from.normal(VEC)
math.dist.segment.point(VEC,VEC,VEC)
math.dist.segment.segment(VEC,VEC,VEC,VEC)
math.dist.triangle.segment(VEC,VEC,VEC,VEC,VEC)
math.dot(VEC,VEC)
math.euler.to.aangle(VEC)
math.exp(NUM)
math.floor(NUM)
math.ln(NUM)
math.log(NUM)
math.lshift(INT,INT)
math.mag(VEC)
math.mag2(VEC)
math.max(NUM,NUM<,NUM>)
math.min(NUM,NUM<,NUM>)
math.normal.from.dip(FLT)
math.normal.from.dip.ddir(FLT,FLT)
math.not(INT,INT)
math.or(INT,INT)
math.outer.product(MAT_PNT/VEC,MAT_PNT/VEC)
math.pi
math.random.gauss
math.random.uniform
math.round(NUM)
math.rshift(INT,INT)
math.sgn(NUM)
math.sin(NUM)
math.sinh(NUM)
math.sqrt(NUM)
math.tan(NUM)
math.tanh(NUM)
math.triangle.inside(VEC,VEC,VEC,VEC)
math.triangle.interp(VEC,FLT,VEC,FLT,VEC,FLT,VEC)
math.unit(VEC)

Matrix Utilities

Matrices are described under Matrices in the FISHData Types” section.

matrix(ARR_PNT/VEC/TEN_PNT/INT<,INT>)
matrix.cols(MAT_PNT)
matrix.det(MAT_PNT/TEN_PNT)
matrix.from.aangle(VEC)
matrix.from.euler(VEC)
matrix.identity(INT)
matrix.inverse(ARR_PNT/MAT_PNT/TEN_PNT)
matrix.lubksb(ARR_PNT/MAT_PNT/TEN_PNT,ARR_PNT)
matrix.ludcmp(ARR_PNT/MAT_PNT/TEN_PNT,ARR_PNT)
matrix.rows(MAT_PNT)
matrix.to.aangle(MAT_PNT)
matrix.to.euler(MAT_PNT)
matrix.transpose(MAT_PNT)

Mechanical Process Utilities

mech.cycle
mech.step

Memory Utilities

memory(MEM_PNT)
memory.create(INT)
memory.delete(MEM_PNT)

Socket Utilities

socket.close(SOCK_PNT/INT)
socket.create
socket.delete(SOCK_PNT)
socket.open(INT/STR,SOCK_PNT/INT<,INT><,INT>)
socket.read(ARR_PNT,INT,SOCK_PNT/INT<,INT>)
socket.read.array(ARR_PNT,SOCK_PNT/INT)
socket.write(ARR_PNT,INT,SOCK_PNT/INT)
socket.write.array(ARR_PNT,SOCK_PNT/INT)

String Utilities

Strings are described under Strings in the FISHData Types” section.

string(ANY<,INT><,STR><,INT><,STR>)
string.build(STR<,ANY><,ANY>)
string.char(STR,INT)
string.len(STR)
string.lower(STR)
string.sub(STR,INT<,INT>)
string.token(STR,INT)
string.token.type(STR,INT)
string.upper(STR)

System Utilities

system.beep(<INT><,INT>)
system.clone(STR<,INT>)
system.command(STR/ARR_PNT/MAP)
system.directory(<STR><,STR>)
system.environment(STR)
system.error
system.os(STR<,INT>)
system.sleep(INT)

Tensor Utilities

Tensors are described under Tensors in the FISHData Types” section.

tensor(MAT/ARR_PNT/VEC/NUM<,NUM><,NUM><,NUM><,NUM><,NUM>)
tensor.i2(TEN)
tensor.j2(TEN)
tensor.prin(TEN<,ARR_PNT>)
tensor.prin.from(VEC,ARR_PNT)
tensor.total(TEN)
tensor.trace(TEN)

Time Utilities

time.clock(<INT>)
time.cpu
time.real

Type Utilities

type(ANY)
type.index(PNT)
type.name(ANY)
type.pointer(PNT)
type.pointer.id(PNT)
type.pointer.name(PNT)

Version Utilities

code.debug
code.name
version.code.major
version.code.minor
version.fish.major
version.fish.minor