home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Demos / Zilla.app / ecmfeed.m < prev    next >
Text File  |  1992-05-31  |  1KB  |  49 lines

  1. /* ecmfeed.m
  2.    Feeder source example for elliptic curve method (ECM).
  3.    Compile with:
  4.    
  5.    > cc -O ecmfeed.m Feeder.o -s -o ecm.feed
  6.    
  7.    Then the executable ecm.feed assumes, at run time, the existence
  8.    of the actual ecm program "ecm."
  9.    
  10.    Copyright 1991 NeXT, Inc.  All Rights Reserved.
  11.  */
  12.  
  13. #include <stdio.h>
  14. #include <sys/time.h>
  15. #include "Feeder.h"
  16.  
  17. void set_random_seed() 
  18. /* Start the random number generator at a new position. */
  19. {
  20.   struct timeval tp;
  21.  
  22.   gettimeofday(&tp,NULL);
  23.   srandom((int)tp.tv_usec + (int)getpid());
  24. }
  25.  
  26.  
  27. void main(int argc, char **argv)
  28. {
  29.   id feed = [Feeder new];
  30.   int n,seed,sgn,q;
  31.   char cmd[256],host[16];
  32.   char letter[8];
  33.   int err;
  34.   
  35.   set_random_seed();
  36.   n = [feed numMachines];
  37.   while(n--) {
  38.     if(![feed isLaunchable:n]) continue;
  39.     [feed getHostname:host for:n];
  40.     seed = random();       /* Every machine gets a 32-bit random seed. */
  41.     sgn = 1;
  42.     q = 128;  /* We are going to try to factor F12 = 2^4096 + 1.  */
  43.     if(sgn<0) strcpy(letter,"m"); else strcpy(letter,"f");    
  44.     sprintf(cmd, "cd Zfactor; ecm %d %d %d 10000 0 24  > log.%s%d.%s",sgn,q,seed,letter,q,host);
  45.     [feed changeHost:n user:NULL password:NULL command:cmd]; 
  46.     }
  47.   [feed launchAll];
  48. }
  49.