def l2_norm( self, degree ): if numpy.isscalar( degree ): degree = numpy.array( [degree] ) else: degree = numpy.array( degree ) norm = numpy.empty( degree.shape[0] ) for i in xrange( degree.shape[0] ): d = degree[i] if ( d == 0 ): norm[i] = 1.; else: beta_func = \ gamma( self.alpha_poly+1 ) * gamma( self.beta_poly+1 ) \ / gamma( self.alpha_poly + self.beta_poly + 2 ); norm[i] = gamma( d + self.alpha_poly + 1.0 ) * gamma( d + self.beta_poly + 1.0 ) / ( ( 2.0 * d + self.alpha_poly + self.beta_poly + 1.0 ) * gamma( d + self.alpha_poly + self.beta_poly + 1.0 ) * factorial( d ) * beta_func ) return norm
def l2_norm( self, degree ): return factorial( degree )