Skip to content
Snippets Groups Projects

LHCbMath:

Merged Vanya Belyaev requested to merge vanya-lhcbmath-v2 into 2018-patches
1 file
+ 23
18
Compare changes
  • Side-by-side
  • Inline
@@ -31,7 +31,7 @@ print 'Check for constant 2D-polynomial is OK'
# 2) create & evaluate symmetric
BP2DS = ROOT.Gaudi.Math.Bernstein2DSym
b = BP2DS ( 5 , 0. , 2. ) ## 5x2th order for x,y in [0,2]
b = BP2DS ( 2 , 0. , 2. ) ## 2x2th order for x,y in [0,2]
for i in range ( b.npars() ) : b.setPar(i,1)
sc = (b.xmax()-b.xmin())*(b.ymax()-b.ymin())/((b.nX()+1)*(b.nY()+1))
@@ -54,8 +54,8 @@ print 'Check for symmetric 2D-polynomial(x2) is OK'
# 3) check integrals
b = BP2D ( 5 , 5 , 0. , 1 , 0 , 2 ) ## 5x2th order for x,y in [0,2]
for i in range ( b.npars() ) : b.setPar(i, random.uniform(-10,10) )
b = BP2D ( 2 , 2 , 0. , 1 , 0 , 2 ) ## 2x2th order for x,y in [0,2]
for i in range ( b.npars() ) : b.setPar(i, random.uniform(-1,1) )
tiny = 1.e-7
i = b.integral()
@@ -73,11 +73,14 @@ check_equality ( i , fi , 'Invalid integrals[1]' , 1.e-4 )
print 'Check for integrals[1] is OK'
for i in range(100) :
x1 = random.uniform ( b.xmin() , b.xmax() )
x2 = random.uniform ( x1 , b.xmax() )
y1 = random.uniform ( b.ymin() , b.ymax() )
y2 = random.uniform ( y1 , b.ymax() )
xmid = 0.5*(b.xmin()+b.xmax())
ymid = 0.5*(b.ymin()+b.ymax())
for i in range(20) :
x1 = random.uniform ( b.xmin() , xmid )
x2 = random.uniform ( xmid , b.xmax() )
y1 = random.uniform ( b.ymin() , ymid )
y2 = random.uniform ( ymid , b.ymax() )
z1 = b (x1,y1)
z2 = b (x2,y2)
v1 = f1(x1,y1)
@@ -93,8 +96,8 @@ del f1, _f1
print 'Check for integrals[2] is OK'
b = BP2DS ( 5 , 0. , 2. ) ## 5x2th order for x,y in [0,2]
for i in range ( b.npars() ) : b.setPar(i, random.uniform(-10,10) )
b = BP2DS ( 2 , 0. , 2. ) ## 5x2th order for x,y in [0,2]
for i in range ( b.npars() ) : b.setPar(i, random.uniform(-1,1) )
i = b.integral()
ii = b.integral( b.xmin() + tiny , b.xmax() - tiny ,
@@ -105,7 +108,7 @@ def _f2 ( x , pars = [] ) :
return b( x[0] , x[1] )
f2 = ROOT.TF2('f2',_f2, b.xmin() ,b.xmax() , b.ymin(), b.ymax() )
fi = f2.Integral( b.xmin() ,b.xmax() , b.ymin(), b.ymax() )
check_equality ( i , fi , 'Invalid integrals[4]' , 1.e-4 )
check_equality ( i , fi , 'Invalid integrals[3]' , 1.e-4 )
print 'Check for integrals[3] is OK'
@@ -124,7 +127,7 @@ for i in range(10) :
check_equality ( z2 , v2 , 'Invalid values' , 1.e-6 )
i = b.integral ( x1 , x2 , y1 , y2 )
fi = f2.Integral ( x1 , x2 , y1 , y2 )
check_equality ( i , fi , 'Invalid integrals[2]' , 1.e-4 )
check_equality ( i , fi , 'Invalid integrals[4]' , 1.e-4 )
del f2, _f2
print 'Check for integrals[4] is OK'
@@ -132,7 +135,7 @@ print 'Check for integrals[4] is OK'
## positive polynomials
BP2DP = ROOT.Gaudi.Math.Positive2D
b = BP2DP ( 5 , 5 , 0 , 2 , 0 , 2 )
b = BP2DP ( 2 , 2 , 0 , 2 , 0 , 2 )
for i in range(100) :
x1 = random.uniform ( b.xmin() , b.xmax() )
@@ -167,7 +170,7 @@ print 'Check for integrals[5] is OK'
## positive symmetric polynomials
BP2DPS = ROOT.Gaudi.Math.Positive2DSym
b = BP2DPS ( 5 , 0 , 2 )
b = BP2DPS ( 2 , 0 , 2 )
for i in range(100) :
x1 = random.uniform ( b.xmin() , b.xmax() )
@@ -198,11 +201,13 @@ ii = b.integral( b.xmin() + tiny , b.xmax() - tiny ,
fi = f4.Integral( b.xmin() ,b.xmax() , b.ymin(), b.ymax() )
check_equality ( i , fi , 'Invalid integrals[7]' , 1.e-4 )
xmid = 0.5*(b.xmin()+b.xmax())
ymid = 0.5*(b.ymin()+b.ymax())
for i in range(100) :
x1 = random.uniform ( b.xmin() , b.xmax() )
y1 = random.uniform ( b.ymin() , b.ymax() )
x2 = random.uniform ( x1 , b.xmax() )
y2 = random.uniform ( y1 , b.ymax() )
x1 = random.uniform ( b.xmin() , xmid )
y1 = random.uniform ( b.ymin() , ymid )
x2 = random.uniform ( xmid , b.xmax() )
y2 = random.uniform ( ymid , b.ymax() )
i = b .integral ( x1 , x2 , y1 , y2 )
fi = f4.Integral ( x1 , x2 , y1 , y2 )
Loading