예제 #1
0
static Scheme_Object *make_rational(const Scheme_Object *n, const Scheme_Object *d,
				    int normalize)
{
  Scheme_Rational *r;

  r = (Scheme_Rational *)scheme_malloc_small_dirty_tagged(sizeof(Scheme_Rational));
  r->so.type = scheme_rational_type;
  CLEAR_KEY_FIELD(&r->so);
  r->num = (Scheme_Object *)n;
  r->denom = (Scheme_Object *)d;
  
  return (normalize 
	  ? scheme_rational_normalize((Scheme_Object *)r) 
	  : (Scheme_Object *)r);
}
예제 #2
0
파일: complex.c 프로젝트: DanBurton/racket
static Scheme_Object *make_complex(const Scheme_Object *r, const Scheme_Object *i,
				   int normalize)
{
  Scheme_Complex *c;

  c = (Scheme_Complex *)scheme_malloc_small_dirty_tagged(sizeof(Scheme_Complex));
  CLEAR_KEY_FIELD(&c->so);
  c->so.type = scheme_complex_type;
  c->r = (Scheme_Object *)r;
  c->i = (Scheme_Object *)i;

  if (normalize)
    return scheme_complex_normalize((Scheme_Object *)c);
  else
    return (Scheme_Object *)c;
}