#NEWLINE# @ classmethod #NEWLINE# def eval( cls , z ) : #NEWLINE# #INDENT# if z . is_Number : #NEWLINE# #INDENT# if ( z is S . NaN ) : #NEWLINE# #INDENT# return S . NaN #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( z is S . Zero ) : #NEWLINE# #INDENT# return S . Zero #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( z is S . Infinity ) : #NEWLINE# #INDENT# return S . Infinity #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# if z . could_extract_minus_sign ( ) : #NEWLINE# #INDENT# return ( - cls ( ( - z ) ) ) #NEWLINE# #UNINDENT# nz = z . extract_multiplicatively ( I ) #NEWLINE# if ( nz is not None ) : #NEWLINE# #INDENT# if ( nz is S . Infinity ) : #NEWLINE# #INDENT# return I #NEWLINE# #UNINDENT# if ( cls . func is erfinv ) : #NEWLINE# #INDENT# return ( I * nz . args [ 0 ] ) #NEWLINE# #UNINDENT# if ( nz . func is erfcinv ) : #NEWLINE# #INDENT# return ( I * ( S . One - nz . args [ 0 ] ) ) #NEWLINE# #UNINDENT# if ( ( nz . func is erf2inv ) and ( nz . args [ 0 ] is S . Zero ) ) : #NEWLINE# #INDENT# return ( I * nz . args [ 1 ] )