/// <summary>
        /// Adds two kernel functions
        /// </summary>
        /// <param name="kernelA"></param>
        /// <param name="kernelB"></param>
        /// <returns></returns>
        public static SummationKernel operator +(SummationKernel kernelA, IKernelFunctionWithParams kernelB)
        {
            SummationKernel res = new SummationKernel();

            res.kernels = kernelA.kernels;
            res.kernels.Add(kernelB);
            res.buildMaps();
            return(res);
        }
 /// <summary>
 /// Adds two kernel functions
 /// </summary>
 /// <param name="kernelA"></param>
 /// <param name="kernelB"></param>
 /// <returns></returns>
 public static SummationKernel operator +(SummationKernel kernelA, IKernelFunctionWithParams kernelB)
 {
     SummationKernel res = new SummationKernel();
     res.kernels = kernelA.kernels;
     res.kernels.Add(kernelB);
     res.buildMaps();            
     return res;
 }