import numpy as np

class Gradim:
    
    def sqrt(self):
        return self.__class__.sqrt(self)
        
    def exp(self):
        return self.__class__.exp(self)

    def sin(self):
        return self.__class__.sin(self)
    
    def cosec(self):
        return self.__class__.cosec(self)

    def cos(self):
        return self.__class__.cos(self)
    
    def sec(self):
        return self.__class__.sec(self)

    def tan(self):
        return self.__class__.tan(self)
    
    def cot(self):
        return self.__class__.cot(self)
    
    def log(self, base=np.exp(1)):
        return self.__class__.log(self, base)
    
    def ln(self):
        return self.__class__.ln(self)
    
    def arcsin(self):
        return self.__class__.arcsin(self)
    '''
    def arccosec(self):
        return self.__class__.arccosec(self)
    '''
    def arccos(self):
        return self.__class__.arccos(self)
    '''
    def arcsec(self):
        return self.__class__.arcsec(self)
    '''
    def arctan(self):
        return self.__class__.arctan(self)
    '''
    def arccot(self):
        return self.__class__.arccot(self)
    '''
    def sinh(self):
        return self.__class__.sinh(self)
    
    def cosh(self):
        return self.__class__.cosh(self)
    
    def tanh(self):
        return self.__class__.tanh(self)
    
    def logistic(self):
        return self.__class__.logistic(self)
