projects
/
unix-history
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
BSD 3 development
[unix-history]
/
usr
/
src
/
cmd
/
apl
/
ae.c
#include
"apl.h"
ex_base
()
{
register
struct
item
*
p
, *
q
;
int
s
,
s1
;
data d
,
d1
;
double
r
,
b
;
p
=
fetch2
();
q
=
sp
[-
2
];
if
(
p
->
rank
>
1
||
q
->
rank
>
1
)
error
(
"base R"
);
b
=
1
.;
r
=
0
.;
s
=
p
->
size
;
s1
=
q
->
size
;
while
(
s
>
0
||
s1
>
0
) {
if
(
s
>
0
) {
s
--;
p
->
index
=
s
;
d
=
getdat
(
p
);
}
if
(
s1
>
0
) {
s1
--;
q
->
index
=
s1
;
d1
=
getdat
(
q
);
}
r
+=
d1
*
b
;
b
*=
d
;
}
pop
();
pop
();
p
=
newdat
(
DA
,
0
,
1
);
push
(
p
);
d
=
r
;
putdat
(
p
,
d
);
}
ex_rep
()
{
register
struct
item
*
p
, *
q
;
register
s
;
double
a
,
b
,
r
;
p
=
fetch2
();
q
=
sp
[-
2
];
if
(
q
->
size
!=
1
||
p
->
rank
>
1
)
error
(
"represent R"
);
r
=
getdat
(
q
);
s
=
p
->
size
;
while
(
s
>
0
) {
s
--;
p
->
index
=
s
;
b
=
getdat
(
p
);
if
(
b
==
0
.)
error
(
"represent D"
);
r
/=
b
;
a
=
r
;
r
=
floor
(
r
);
datum
= (
a
-
r
) *
b
;
p
->
index
=
s
;
putdat
(
p
,
datum
);
}
sp
--;
pop
();
push
(
p
);
}