\\ Until full reference manual is ported to wiki, **use this to document TOOL updates**. ===== A ===== [[tool:abs|abs]] : absolute value \\ a[x] = abs (b[x]) [[TOOLadd|add]] {+} : addition \\ a[x,y] = b[x,y] + c[x,y] {add (b[x,y], c[x,y])} \\ a[x,y] = b[x,y] + c[x] {add (b[x,y], c[x])} agetime : transform age to birth time \\ a[..,birthDate,t] = agetime (b[..,age,t]; {dimName=birthDate}) \\ animalstk : evolve animal population \\ stock[..,t,s,a], culled[..,t,s,a], slaughtered[..,t,s,a] = animalstk (base[..,s,a], cullRate[..,t,s,a], \\ fertility[..,t,a], genderShr[..,t], slaughterRate[..,t,s,a]; \\ {demand=stockDemand[..,t], importDistr[..,t,s,a], \\ exportDistr[..,t,s,a], netExport[..,t,s,a]}) assign {=} : assign data from one object to another \\ a[x,y] = b[x,y] {assign (b[x,y])} \\ a[u,v] = assign (b[x,y]; checkDims=off) avg : average of \\ a[x] = avg (b[x,y]; dim=y) ===== B ===== ===== C ===== **create()** syntax: A[X1,..,Xn] = create (; {object=array}, dim=dimString(X1), ...,dimString=Name(Xn), {dimFromi=D[..]},{SIuom=uomStr,{metre=ni, m=ni}, {kilogram=ni, kg=ni},{second=ni, sec=ni, s=ni},{degreeC=ni, degC=ni}, {coloumb=ni, q=ni},{radian=ni, rad=ni},{steradian=ni, sterad=ni}}, {altUom=altUomStr}, {entity=entStr}, {SIuomFrom=S[..]}, {altUomFrom=T[..]}, {entityFrom=E[..]}, {dataType={real, integer}},{desc=descrStr}, {format={agg,coord,record,mdi}, useIndex={on,off}, {translate1=string1, .., translaten=stringn,..,value1=number1,..,valuen=numbern, { mask1=maskName1[X1,..,Xn]},..{maskn=maskNamen[X1,..,Xn],..}} ...,format dependent parameters...) parameter precision={single,double} for real objects ===== G ===== getobjinfo (B[X1,..,Xn], $infoVar; info={extent, dim=Xj}, {extents},{dataElement, {..dimi=elementName..}}, {sequence, dim=Xj},{sequenceName, dim=Xj}, {sequenceStart, dim=Xj},{sequenceEnd, dim=Xj} {sequenceStep, dim=Xj},{sequenceInterval, dim=Xj}) - the default parameter is not documented. ===== M ===== multiply() \\ enhanced multiply * dimensions can be out of order * dimensions do not need to overlap (multiply takes over from outer) * essentially this means you may multiply any two objects together, period. some examples: a[p,t] = b[p,t] * c[t,p] a[p,t] = b[p] * c[t] a[m->z,g,t,a] = b[m,g] * c[m->z,t,a] etc ===== N ===== norm : normalize \\ a[x,y,t] = norm (a[x,y,t]; dim=x) \\ a[x,y,t] = norm (a[x,y,t]; dim1=x,dim2=y) \\ a[x,y,t] = norm (a[x,y,t]; dim=all) \\ ===== S ===== sum \\ multi-dim sum a[p,t] = sum (b[p,g,t,a]; dim1=gender, dim2=age) a[p,x,t,n] = sum (b[p,x->y,g,t,a]; dim1=gender, dim2=age, dim3=x->y@y, dim4=n->m@m) a[] = sum (b[p,g,t,a]; dim=all) ===== X ========