Index: tol_pkg/FunRn2R/BaseC2.Monomial.tol
===================================================================
--- tol_pkg/FunRn2R/BaseC2.Monomial.tol	(revision 8210abee27edfb308e6e55de9ff095ca651c4472)
+++ tol_pkg/FunRn2R/BaseC2.Monomial.tol	(revision 0dd5bc2af2fd1c4a4e3aee633234bb26df597f70)
@@ -125,4 +125,20 @@
       })
     })
+  };
+  ////////////////////////////////////////////////////////////////////////////
+  Static Text _.autodoc.member._build.partial.integrate.1.v = 
+  "Evaluates the first partial integration of k-th basic function for an "
+  "array of points given as the rows of a matrix";
+  VMatrix _build.partial.integrate.1.v(Real k, VMatrix X, Real i)
+  ////////////////////////////////////////////////////////////////////////////
+  {
+  //WriteLn("TRACE @BaseC2.Monomial::_build.partial.integrate.1.v");
+    Real d = _.degComb[k][i];
+    VMatrix aux = (RPow(SubCol(X,[[i]]),d+1)/(d+1));
+    If(!Card(_.range.der.1[i]),aux,aux $*
+    BinGroup("$*", EvalSet(_.range.der.1[i], VMatrix rd1(Real h)
+    {
+      RPow(SubCol(X,[[h]]),_.degComb[k][h])
+    })))
   }
 
Index: tol_pkg/FunRn2R/BaseC2.tol
===================================================================
--- tol_pkg/FunRn2R/BaseC2.tol	(revision 8210abee27edfb308e6e55de9ff095ca651c4472)
+++ tol_pkg/FunRn2R/BaseC2.tol	(revision 0dd5bc2af2fd1c4a4e3aee633234bb26df597f70)
@@ -49,4 +49,11 @@
     SubCol( _build.partial.derivative.2.m(X,i,j),[[k]])
   };
+  //Evaluates the partial integration of k-th basic function for an  
+  //array of points given as the rows of a matrix 
+  VMatrix _build.partial.integrate.1.v(Real k, VMatrix X, Real i)
+  {
+  //WriteLn("TRACE @BaseC2::_build.partial.derivative.1.v");
+    SubCol( _build.partial.integrate.1.m(X,i),[[k]])
+  };
 
   //Evaluates all basic functions, one in each returned column, for an 
@@ -82,4 +89,15 @@
     }))
   };
+  //Evaluates the first partial integration of all basic functions, one in 
+  //each returned column, for an  array of points given as the rows of a 
+  //matrix 
+  VMatrix _build.partial.integrate.1.m(VMatrix X, Real i)
+  {
+  //WriteLn("TRACE @BaseC2::_build.partial.derivative.1.m");
+    Group("ConcatColumns", For(1,_.K,VMatrix(Real k)
+    {
+      _build.partial.integrate.1.v(k, X, i)
+    }))
+  };
   //Some bases are more efficient using cache
   Real _build.cache(VMatrix X, Real order) { False };
@@ -110,4 +128,11 @@
     _build.partial.derivative.2.v(k, X, i, j) 
   };
+  //Evaluates the first partial integration of k-th basic function for an  
+  //array of points given as the rows of a matrix 
+  VMatrix partial.integrate.1.v(Real k, VMatrix X, Real i)
+  { 
+  //WriteLn("TRACE @BaseC2::partial.derivative.1.v");
+    _build.partial.integrate.1.v(k, X, i) 
+  };
 
   //Evaluates all basic functions, one in each returned column, for an 
@@ -135,9 +160,14 @@
   };
 
+  //Evaluates the first partial integration of all basic functions, one in 
+  //each returned column, for an  array of points given as the rows of a 
+  //matrix 
+  VMatrix partial.integrate.1.m(VMatrix X, Real i)
+  {
+  //WriteLn("TRACE @BaseC2::partial.derivative.1.m");
+    _build.partial.integrate.1.m(X, i) 
+  };
   //Some bases are more efficient using cache
   Real upgrade.cache(VMatrix X, Real order) 
   { _build.cache(X,order) }
-
-
 };
-
