198 int cnt=0;
int rw=0;
int cl=0;
200 for(
int j=rl-1;
j>=0;
j--)
204 if (xx[
j]->
nrows >rw) rw=xx[
j]->nrows;
209 WerrorS(
"format mismatch in CRT");
216 if ((cpus==1) || (2*cpus>=cnt))
222 int parent_pid=getpid();
227 for(
int i=cnt-1;
i>=0;
i--)
231 for(
int i=cpus;
i>=0;
i--)
237 for (
int i=0;
i<cpus;
i++)
242 if (parent_pid!=getpid())
244 number *
x=(number *)
omAlloc(rl*
sizeof(number));
245 poly *
p=(poly *)
omAlloc(rl*
sizeof(poly));
251 int ind=queue->dequeue();
257 for(
int j=rl-1;
j>=0;
j--)
268 char *
s=(
char*)msg->str();
270 rqueue->enqueue(msg);
280 msg=rqueue->dequeue();
281 char *
s=(
char*)msg->str();
const CanonicalForm int s
void WerrorS(const char *s)
static void * feOptValue(feOptIndex opt)
static char * get_poly(char *s, int &ind, poly *p, const ring r)
static long size_poly(poly p, const ring r)
static char * send_poly(char *s, int ind, poly p, const ring r)
poly p_ChineseRemainder(poly *xx, mpz_ptr *x, mpz_ptr *q, int rl, mpz_ptr *C, const ring R)
static const int MAX_PROCESS
static void vmem_deinit()
static VRef< VString > vstring(const char *s)
static Status vmem_init()
ideal idInit(int idsize, int rank)
initialise an ideal / module
ideal id_ChineseRemainder(ideal *xx, number *q, int rl, const ring r)