1234567891011121314151617181920212223242526272829303132333435 |
- #include "stdafx.h"
- #include "defs.h"
- void
- eval_atomize(void)
- {
- push(cadr(p1));
- eval();
- p1 = pop();
- if (iscons(p1))
- atomize();
- else
- push(p1);
- }
- void
- atomize(void)
- {
- int i, n;
- p1 = cdr(p1);
- n = length(p1);
- if (n == 1) {
- push(car(p1));
- return;
- }
- p2 = alloc_tensor(n);
- p2->u.tensor->ndim = 1;
- p2->u.tensor->dim[0] = n;
- for (i = 0; i < n; i++) {
- p2->u.tensor->elem[i] = car(p1);
- p1 = cdr(p1);
- }
- push(p2);
- }
|