Disable the debugger if you are testing performance.
You can try with a macro, but keep in mind that the arguments might be evaluated multiple times.
Code:
CompilerIf #PB_Compiler_Debugger
CompilerError "disable debugger"
CompilerEndIf
RangeInf.i=0
RangeSup.i=6
x0.d=3.12548
x1.d=29.59842
;I want to know if x0 and x1 are in between 0 (or equal to 0) and 5.99999999...
Procedure InBetween(RangeInf.i,RangeSup.i,x.d)
If Bool(x>=RangeInf And x<RangeSup)
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Macro InBetween_macro(RangeInf, RangeSup, x)
Bool( ((x) >= (RangeInf)) And ((x) < (RangeSup)) )
EndMacro
OpenConsole()
Debug InBetween(RangeInf,RangeSup,x0)
Debug InBetween(RangeInf,RangeSup,x1)
Debug InBetween(RangeInf,RangeSup,5.9999999)
Debug InBetween(RangeInf,RangeSup,0.0000001)
Debug InBetween(RangeInf,RangeSup,0)
Debug InBetween(RangeInf,RangeSup,6)
Debug "-----------------------------------"
t1.q=ElapsedMilliseconds()
For i=0 To 100000000
InBetween(RangeInf,RangeSup,x0)
Next i
t2.q=ElapsedMilliseconds()
PrintN(Str(t2-t1)) ; 806
t1.q=ElapsedMilliseconds()
For i=0 To 100000000
InBetween_macro(RangeInf,RangeSup,x0)
Next i
t2.q=ElapsedMilliseconds()
PrintN(Str(t2-t1)) ; 402
Input()