Dear fellows!
i have written a simple Rexx-Program to calculate the first 150.000
primes, for performance monitoring i collect the number of compares like
this

         NR.0 = ANZ      /* Prime-Table - STEM */

         NR.1 = 2;         /* first Prime */
         NR.2 = 3;         /* 2.    Prime  */
         P=3;                /* starting Prime */
         N = 2               /* last STEM . nr */
         PRI=0              /* reset Prime-Indicator  */
         VO=0               /* Compare-Operations 1-999999 */
         MVO=0             /* Compare-Count-Millions */

DO I=2 TO ANZ
      P=P+2;       /* perhaps next Prime ? */

DO Until (PRI=1)   /* vergleichen bis Primzahl gefunden   */
        DO J=2 TO N     /* von 2. bis letzter errechneter Zahl  */
               VO=VO+1  /* Vergleiche um 1 erhöhen             */
               IF (P//NR.J)=0 THEN Do
                                   PRI=0   /* P = no Prime */
                                   P=P+2  /* add 2 to possible Prime   */
                                   Leave J  /* leave inner Do-Loop */
                              End
                              Else PRI=1   /* Prime still possible */

        END J
     End

     N=N+1         /* our next STEM-NR  */
     NR.N=P        /* new PRIME into STEM  */
     PRI=0          /* reset Prime-Indicator */
     IF (N//1000) = 0 then Do
                           THT = TIME()
                           LS = TIME("S")
                           DS = LS - FS
                           ZVO = RIGHT(VO,15)
                           FVO = RIGHT(ZVO,20)
                           /*
---------------------------------------------------------- */
                           /* following Routine is faster than-> numeric
digits 15  */
                           /*
---------------------------------------------------------- */
                           IF SUBSTR(ZVO,9,1) \= " " THEN DO
                                                          MVO = MVO +
SUBSTR(ZVO,1,9)
                                                          VO  =
SUBSTR(ZVO,10,6)
                                                          ZVO =
RIGHT(MVO,9)||VO
                                                          END
                           /* --------------------------------------------
*/
                           /* format Monitor-NR with 1000er Points   */
                           /* --------------------------------------------
*/
                           SELECT
                             WHEN SUBSTR(ZVO,12,1)=" " THEN FVO =
RIGHT(ZVO,20)
                             WHEN SUBSTR(ZVO,9,1) =" " THEN FVO =
SUBSTR(ZVO,1,12)"."SUBSTR(ZVO,13,3)
                             WHEN SUBSTR(ZVO,6,1) =" " THEN FVO =
SUBSTR(ZVO,1,9)"."SUBSTR(ZVO,10,3)"."SUBSTR(ZVO,13,3)
                             WHEN SUBSTR(ZVO,3,1) =" " THEN FVO =
SUBSTR(ZVO,1,6)"."SUBSTR(ZVO,7,3)"."SUBSTR(ZVO,10,3)"."SUBSTR(ZVO,13,3)
                             OTHERWISE FVO =
SUBSTR(ZVO,1,3)"."SUBSTR(ZVO,4,3)"."SUBSTR(ZVO,7,3)"."SUBSTR(ZVO,10,3)"."SUBSTR(ZVO,13,3)
                             END /* SELECT */
                           FVO = RIGHT(FVO,20)
                           SLINE = THT RIGHT(DS,5) "sec" RIGHT(N,6)
"Primzahlen errechnet nach" FVO "Vergleichsoperationen"
                           say SLINE
                           FS = LS
                           RC = 0;
                           CALL LINEOUT logfile,SLINE    /* write Logline */
                           IF RC <> 0 then Do
                                            Say "CALL LINEOUT" logfile
SLINE "fails with RC" RC
                                            Signal Ende
                                            End
                       End
  END I

When i used the *REXX-Option  numeric digits 15* to simplify my own coding,
i got a doubled elapsed time!

Therefore i think it would be nice to delimit the numeric digits option to
single variables.
Of course, i don´t know, what this means for you as developers!

2nd question: when will you release the Windows 64-Bit Release V5
officially?

Yours Sincerely
Franz
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to