Go to the first, previous, next, last section, table of contents.

### `arfreg`

:: Registers a set of fundamental operations for a type of structure.
return
1
name
string
add, sub, mul, div, pwr, chsgn, comp
user defined functions
• This function registers a set of fundamental operations for a type of structure whose name is name.
• The specification of each function is as follows.
A+B
sub(A,B)
A-B
mul(A,B)
A*B
div(A,B)
A/B
pwr(A,B)
A^B
chsgn(A)
-A
comp(A,B)
1,0,-1 according to the result of a comparison between A and B.
```% cat test
struct a {id,body}\$

{
C = newstruct(a);
C->id = A->id; C->body = A->body+B->body;
return C;
}

def sub(A,B)
{
C = newstruct(a);
C->id = A->id; C->body = A->body-B->body;
return C;
}

def mul(A,B)
{
C = newstruct(a);
C->id = A->id; C->body = A->body*B->body;
return C;
}

def div(A,B)
{
C = newstruct(a);
C->id = A->id; C->body = A->body/B->body;
return C;
}

def pwr(A,B)
{
C = newstruct(a);
C->id = A->id; C->body = A->body^B;
return C;
}

def chsgn(A)
{
C = newstruct(a);
C->id = A->id; C->body = -A->body;
return C;
}

def comp(A,B)
{
if ( A->body > B->body )
return 1;
else if ( A->body < B->body )
return -1;
else
return 0;
}

end\$
% asir
This is Risa/Asir, Version 20000908.
Copyright (C) FUJITSU LABORATORIES LIMITED.
[11] A=newstruct(a);
{0,0}
[12] B=newstruct(a);
{0,0}
[13] A->body = 3;
3
[14] B->body = 4;
4
[15] A*B;
{0,12}
```
References
section `newstruct`, section structure definition

Go to the first, previous, next, last section, table of contents.