⚠️ Warning: This is a draft ⚠️

This means it might contain formatting issues, incorrect code, conceptual problems, or other severe issues.

If you want to help to improve and eventually enable this page, please fork RosettaGit's repository and open a merge request on GitHub.

Rexx has two comparison operators (for testing equality)


strictly equal a==b tests the values byte for byte, so '1'==' 01e0 ' -> 0 (false)
         equal a=b tests the values more generously 
                       it strips leading and trailing blanks and, if both values are
           numbers compares them arithmetically (observing the Numeric Digits setting)
                                                    so '1'=' 01e0 ' -> 1 (true)

I performed a little performance test on TSO.

/* REXX *************************************************************** 
* Compare the performance of equal vs. strictly equal                   
* 05.07.2012 Walter Pachl                                               
**********************************************************************/ 
Parse Version v                                                        
Say 'eqtest on Rexx Version' v                                         
Say ' Hits Misses test =      Test ==      == improvement'             
Call random 1,10,12345              /* set seed                      */
Do i=1 To 100000                                                       
  x.i=random()                                                         
  End                                                                  
Do rep=1 To 5                                                          
  cnt.=0                                                               
  Call time 'R'                                                        
  Do i=1 To 100000                                                     
    If x.i=999 Then cnt.1=cnt.1+1                                      
                Else cnt.0=cnt.0+1                                     
    End                                                                
  cnt.=0                                                               
  te=time('R')                                                         
  Do i=1 To 100000                                                     
    If x.i==999 Then cnt.1=cnt.1+1                                     
                Else cnt.0=cnt.0+1                                     
    End                                                                
  tse=time('E')                                                        
  Say right(cnt.0,5) right(cnt.1,5),                                   
      format(te,2,8) format(tse,2,8) format((100*(te-tse)/te),3,8)'%'  
  End   

The results:


Interpreter:
eqtest on Rexx Version REXX370 3.48 01 May 1992
 Hits Misses test =      Test ==      == improvement
99894   106  0.15227900  0.14603100   4.10299516%
99894   106  0.14801500  0.14583200   1.47485052%
99894   106  0.15465700  0.15261200   1.32228092%
99894   106  0.15660000  0.14936200   4.62196679%
99894   106  0.15060800  0.17170400 -14.00722410%

Compiled Rexx:
eqtest on Rexx Version REXXC370 3.48 23 Dec 1999
 Hits Misses test =      Test ==      == improvement
99894   106  0.01011300  0.01730900 -71.15593790%
99894   106  0.00983700  0.01328100 -35.01067400%
99894   106  0.00973800  0.01293300 -32.80961180%
99894   106  0.00984500  0.01306300 -32.68664300%
99894   106  0.01005300  0.01423700 -41.61941710%

As I was part of the Compiler Development Team in the former IBM Lab Vienna I am rather proud of my friends' achievement!

You are invited to test this on your platform with your Rexx! --[[User:Walterpachl|Walterpachl]] 07:28, 5 July 2012 (UTC)

Here the result on my pretty old desktop Windows:


eqtest on Rexx Version REXX-ooRexx_4.1.1(MT) 6.03 16 May 2012
 Hits Misses test =      Test ==      == improvement
99896   104  0.12500000  0.12500000   0.00000000%
99896   104  0.12500000  0.10900000  12.80000000%
99896   104  0.12500000  0.14100000 -12.80000000%
99896   104  0.12500000  0.10900000  12.80000000%
99896   104  0.12500000  0.12500000   0.00000000%   

--[[User:Walterpachl|Walterpachl]] 16:13, 5 July 2012 (UTC)

The following results are from a MacBook Pro:

  • '''Processor:''' 2.66 GHz Intel Core 2 Duo
  • '''Memory:''' 4 GB
  • '''Software:''' Mac OS X Lion 10.7.4 '''ooRexx:'''

eqtest on Rexx Version REXX-ooRexx_4.1.1(MT) 6.03 5 Jun 2011
 Hits Misses test =      Test ==      == improvement
99896   104  0.11199600  0.10708800   4.38229937%
99896   104  0.11749800  0.10943300   6.86394662%
99896   104  0.11566000  0.13758600 -18.95728860%
99896   104  0.11635800  0.12008500  -3.20304577%
99896   104  0.19133300  0.18279400   4.46289976%

'''Regina:'''


eqtest on Rexx Version REXX-Regina_3.5(MT) 5.00 31 Dec 2009
 Hits Misses test =      Test ==      == improvement
99901    99  0.07463500  0.06828200   8.51209218%
99901    99  0.05713800  0.06026000  -5.46396444%
99901    99  0.06151100  0.07270400 -18.19674530%
99901    99  0.07320100  0.08063500 -10.15559900%
99901    99  0.07326500  0.07511300  -2.52235037%

--[[User:Alansam|Alansam]] 16:44, 5 July 2012 (UTC)