@@ -73,6 +73,36 @@ def transform(self, a):
7373 def inverted (self ):
7474 return LogScale .Log2Transform ()
7575
76+ class NaturalLogTransform (Transform ):
77+ input_dims = 1
78+ output_dims = 1
79+ def __init__ (self ):
80+ Transform .__init__ (self )
81+
82+ def is_separable (self ):
83+ return True
84+
85+ def transform (self , a ):
86+ return ma .log (ma .masked_where (a <= 0.0 , a * npy .e ))
87+
88+ def inverted (self ):
89+ return LogScale .InvertedNaturalLogTransform ()
90+
91+ class InvertedNaturalLogTransform (Transform ):
92+ input_dims = 1
93+ output_dims = 1
94+ def __init__ (self ):
95+ Transform .__init__ (self )
96+
97+ def is_separable (self ):
98+ return True
99+
100+ def transform (self , a ):
101+ return ma .power (npy .e , a ) / npy .e
102+
103+ def inverted (self ):
104+ return LogScale .Log2Transform ()
105+
76106 class LogTransform (Transform ):
77107 input_dims = 1
78108 output_dims = 1
@@ -84,14 +114,12 @@ def is_separable(self):
84114 return True
85115
86116 def transform (self , a ):
87- if len (a ) > 10 :
88- print "Log Transforming..."
89117 return ma .log (ma .masked_where (a <= 0.0 , a * self ._base )) / npy .log (self ._base )
90118
91119 def inverted (self ):
92120 return LogScale .InvertedLogTransform (self ._base )
93121
94- class InvertedLog2Transform (Transform ):
122+ class InvertedLogTransform (Transform ):
95123 input_dims = 1
96124 output_dims = 1
97125 def __init__ (self , base ):
@@ -113,7 +141,8 @@ def __init__(self, base=10):
113141 self ._transform = self .Log10Transform ()
114142 elif base == 2.0 :
115143 self ._transform = self .Log2Transform ()
116- # MGDTODO: Natural log etc.
144+ elif base == npy .e :
145+ self ._transform = self .NaturalLogTransform ()
117146 else :
118147 self ._transform = self .LogTransform (base )
119148
0 commit comments