/// <summary>
 /// Instancia uma nova instância de objectos do tipo <see cref="UnivarNormalFromInterpolator{SourceType, TargetType}"/>.
 /// </summary>
 /// <param name="pointsContainer">O contentor de pontos que constitui o conjunto a ser interpolado.</param>
 /// <param name="variableName">A variável associada ao polinómio interpolador.</param>
 /// <param name="integerConversion">
 /// O objecto responsável pela conversão entre inteiros a o tipo de dados do conjunto
 /// dos objectos.
 /// </param>
 /// <param name="multiplicationOperation">
 /// O objecto responsável pelas operações de multiplicação entre objectos do conjunto de partida
 /// e objectos da imagem.
 /// </param>
 /// <param name="targetRing">O objecto responsável pelas operações sobre os objectos da imagem.</param>
 /// <param name="sourceField">O objecto responsável pelas operações sobre os objectos do conjunto de partida.</param>
 public UnivarNormalFromInterpolator(
     PointContainer2D <SourceType, TargetType> pointsContainer,
     string variableName,
     IConversion <int, SourceType> integerConversion,
     IMultiplicationOperation <SourceType, TargetType, TargetType> multiplicationOperation,
     IRing <TargetType> targetRing,
     IField <SourceType> sourceField)
     : base(pointsContainer, sourceField)
 {
     if (targetRing == null)
     {
         throw new ArgumentNullException("targetGroup");
     }
     else if (multiplicationOperation == null)
     {
         throw new ArgumentNullException("multiplicationOperation");
     }
     else
     {
         this.integerConversion        = integerConversion;
         this.targetRing               = targetRing;
         this.multiplicationOperation  = multiplicationOperation;
         this.interpolationgPolynomial = new UnivariatePolynomialNormalForm <TargetType>(variableName);
         this.Initialize();
     }
 }
Exemple #2
0
 /// <summary>
 /// Cria a instância de um objecto capaz de multiplicar um coeficiente por um vector.
 /// </summary>
 /// <param name="coeffsMultOperation">A operação de multiplicação entre os coeficientes.</param>
 /// <param name="vectorFactory">Uma fábrica que permita criar instâncias de vectores.</param>
 /// <exception cref="ArgumentNullException">Caso ambos os argumentos sejam nulos.</exception>
 public CoeffVectorMultiplicationOperation(
     IMultiplicationOperation <CoeffType, CoeffVectorType, CoeffVectorType> coeffsMultOperation,
     IMathVectorFactory <CoeffVectorType> vectorFactory)
 {
     if (vectorFactory == null)
     {
         throw new ArgumentNullException("vectorFactory");
     }
     else if (coeffsMultOperation == null)
     {
         throw new ArgumentNullException("coeffsMultOperation");
     }
     else
     {
         this.vectorFactory       = vectorFactory;
         this.coeffsMultOperation = coeffsMultOperation;
     }
 }
 /// <summary>
 /// Cria instâncias de objectos do tipo <see cref="GeneralMatrixRing{CoeffType}"/>.
 /// </summary>
 /// <param name="dimension">A dimensão das matrizes que poderão ser operadas.</param>
 /// <param name="matrixFactory">A fábrica responsável pela instância das matrizes resultantes.</param>
 /// <param name="coeffsRing">O anel responsável pelas operações sobre os coeficientes.</param>
 /// <exception cref="ArgumentNullException">Caso algum dos argumentos seja nulo.</exception>
 public GeneralMatrixRing(
     int dimension,
     IMathMatrixFactory <CoeffType> matrixFactory,
     IRing <CoeffType> coeffsRing)
     : base(dimension, dimension, matrixFactory, coeffsRing)
 {
     if (matrixFactory == null)
     {
         throw new ArgumentNullException("matrixFactory");
     }
     else
     {
         this.coeffsRing = coeffsRing;
         this.matrixMult = new MatrixMultiplicationOperation <CoeffType>(
             matrixFactory,
             this.coeffsRing,
             this.coeffsRing);
     }
 }
 /// <summary>
 /// Instancia um novo objecto do tipo <see cref="MatrixMultiplicationOperation{ObjectType}"/>.
 /// </summary>
 /// <param name="matrixFactory">A fábrica responsável pela criação de matrizes.</param>
 /// <param name="additionOperation">O objecto responsável pela soma de coeficientes.</param>
 /// <param name="multiplicationOperation">O objecto responsável pelo produto dos coeficientes.</param>
 /// <exception cref="ArgumentNullException">
 /// Se algum dos argumentos for nulo.
 /// </exception>
 public MatrixMultiplicationOperation(IMathMatrixFactory <ObjectType> matrixFactory,
                                      IAdditionOperation <ObjectType, ObjectType, ObjectType> additionOperation,
                                      IMultiplicationOperation <ObjectType, ObjectType, ObjectType> multiplicationOperation)
 {
     if (multiplicationOperation == null)
     {
         throw new ArgumentNullException("multiplicationOperation");
     }
     if (additionOperation == null)
     {
         throw new ArgumentNullException("additionOperation");
     }
     else if (matrixFactory == null)
     {
         throw new ArgumentNullException("matrixFactory");
     }
     else
     {
         this.multiplicationOperation = multiplicationOperation;
         this.additionOperation       = additionOperation;
         this.matrixFactory           = matrixFactory;
     }
 }