home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3.4.17 [SPARC, PA-RISC] / nextstep33_risc.iso / NextDeveloper / Demos / Zilla.app / ecmfeed.m < prev    next >
Text File  |  1993-06-28  |  1KB  |  50 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 <libc.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 *hi;
  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.     hi = (int *) (&host[0]);
  41.     seed = random() ^ (*hi);       /* Every machine gets a random seed. */
  42.     sgn = 1;
  43.     q = 128;  /* We are going to try to factor F7 = 2^(2^7) + 1.  */
  44.     if(sgn<0) strcpy(letter,"m"); else strcpy(letter,"f");    
  45.     sprintf(cmd, "cd ~/Zfactor; ecm %d %d %d 10000 0 24  > log.%s%d.%s",sgn,q,seed,letter,q,host);
  46.     [feed changeHost:n user:NULL password:NULL command:cmd]; 
  47.     }
  48.   [feed launchAll];
  49. }
  50.