2004-08-06 02:51:32 -04:00
|
|
|
#include "factor.h"
|
|
|
|
|
|
|
|
void primitive_from_rect(void)
|
|
|
|
{
|
2004-12-24 17:29:16 -05:00
|
|
|
CELL real, imaginary;
|
2006-05-15 18:00:37 -04:00
|
|
|
F_COMPLEX* complex;
|
2004-10-12 23:49:43 -04:00
|
|
|
|
2006-05-15 18:00:37 -04:00
|
|
|
maybe_gc(sizeof(F_COMPLEX));
|
2004-10-12 23:49:43 -04:00
|
|
|
|
2004-12-24 17:29:16 -05:00
|
|
|
imaginary = dpop();
|
|
|
|
real = dpop();
|
2006-05-15 18:00:37 -04:00
|
|
|
complex = allot_object(COMPLEX_TYPE,sizeof(F_COMPLEX));
|
|
|
|
complex->real = real;
|
|
|
|
complex->imaginary = imaginary;
|
2005-03-29 20:34:29 -05:00
|
|
|
dpush(RETAG(complex,COMPLEX_TYPE));
|
2004-08-06 02:51:32 -04:00
|
|
|
}
|
2006-05-15 18:00:37 -04:00
|
|
|
|
|
|
|
void fixup_complex(F_COMPLEX* complex)
|
|
|
|
{
|
|
|
|
data_fixup(&complex->real);
|
|
|
|
data_fixup(&complex->imaginary);
|
|
|
|
}
|
|
|
|
|
|
|
|
void collect_complex(F_COMPLEX* complex)
|
|
|
|
{
|
|
|
|
copy_handle(&complex->real);
|
|
|
|
copy_handle(&complex->imaginary);
|
|
|
|
}
|