#NEWLINE# def sub( self , x , y ) : #NEWLINE# #INDENT# cx = x . __class__ #NEWLINE# cy = y . __class__ #NEWLINE# if ( ( cx in self . _scalar_shape_classes ) and ( cy in self . _scalar_shape_classes ) ) : #NEWLINE# #INDENT# if is_zero ( y ) : #NEWLINE# #INDENT# return x #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( ( cx is Const ) and ( cy is Const ) ) : #NEWLINE# #INDENT# return const ( ( x . value - y . value ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( ( cx is AnyScalar ) or ( cy is AnyScalar ) ) : #NEWLINE# #INDENT# return any_scalar #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( y == y ) : #NEWLINE# #INDENT# return Const ( 0 ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return Sub ( x , y ) #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# return any_value