/// <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(); } }
/// <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; } }