Add missing changes.

This commit is contained in:
Gael Guennebaud 2013-06-12 17:56:15 +02:00
parent f3a029e957
commit f75419c711
5 changed files with 17 additions and 18 deletions

View File

@ -30,10 +30,9 @@ struct selfadjoint_packed_rank1_update<Scalar,Index,ColMajor,UpLo,ConjLhs,ConjRh
for (Index i=0; i<size; ++i) for (Index i=0; i<size; ++i)
{ {
Map<Matrix<Scalar,Dynamic,1> >(mat, UpLo==Lower ? size-i : (i+1)) Map<Matrix<Scalar,Dynamic,1> >(mat, UpLo==Lower ? size-i : (i+1)) += alpha * cj(vec[i]) * ConjRhsType(OtherMap(vec+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1)));
+= alpha * cj(vec[i]) * ConjRhsType(OtherMap(vec+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1)));
//FIXME This should be handled outside. //FIXME This should be handled outside.
mat[UpLo==Lower ? 0 : i] = real(mat[UpLo==Lower ? 0 : i]); mat[UpLo==Lower ? 0 : i] = numext::real(mat[UpLo==Lower ? 0 : i]);
mat += UpLo==Lower ? size-i : (i+1); mat += UpLo==Lower ? size-i : (i+1);
} }
} }

View File

@ -24,8 +24,8 @@ struct rank2_update_selector
for (Index i=0; i<size; ++i) for (Index i=0; i<size; ++i)
{ {
Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1)) += Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1)) +=
conj(alpha) * conj(u[i]) * OtherMap(v+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1)) numext::conj(alpha) * numext::conj(u[i]) * OtherMap(v+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1))
+ alpha * conj(v[i]) * OtherMap(u+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1)); + alpha * numext::conj(v[i]) * OtherMap(u+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1));
} }
} }
}; };
@ -43,10 +43,10 @@ struct packed_rank2_update_selector
for (Index i=0; i<size; ++i) for (Index i=0; i<size; ++i)
{ {
Map<Matrix<Scalar,Dynamic,1> >(mat+offset, UpLo==Lower ? size-i : (i+1)) += Map<Matrix<Scalar,Dynamic,1> >(mat+offset, UpLo==Lower ? size-i : (i+1)) +=
conj(alpha) * conj(u[i]) * OtherMap(v+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1)) numext::conj(alpha) * numext::conj(u[i]) * OtherMap(v+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1))
+ alpha * conj(v[i]) * OtherMap(u+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1)); + alpha * numext::conj(v[i]) * OtherMap(u+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1));
//FIXME This should be handled outside. //FIXME This should be handled outside.
mat[offset+(UpLo==Lower ? 0 : i)] = real(mat[offset+(UpLo==Lower ? 0 : i)]); mat[offset+(UpLo==Lower ? 0 : i)] = numext::real(mat[offset+(UpLo==Lower ? 0 : i)]);
offset += UpLo==Lower ? size-i : (i+1); offset += UpLo==Lower ? size-i : (i+1);
} }
} }

View File

@ -12,7 +12,7 @@
struct scalar_norm1_op { struct scalar_norm1_op {
typedef RealScalar result_type; typedef RealScalar result_type;
EIGEN_EMPTY_STRUCT_CTOR(scalar_norm1_op) EIGEN_EMPTY_STRUCT_CTOR(scalar_norm1_op)
inline RealScalar operator() (const Scalar& a) const { return internal::norm1(a); } inline RealScalar operator() (const Scalar& a) const { return numext::norm1(a); }
}; };
namespace Eigen { namespace Eigen {
namespace internal { namespace internal {

View File

@ -120,10 +120,10 @@ int EIGEN_BLAS_FUNC(rotg)(RealScalar *pa, RealScalar *pb, RealScalar *pc, RealSc
else else
{ {
scale = abs(a) + abs(b); scale = abs(a) + abs(b);
norm = scale*sqrt((internal::abs2(a/scale))+ (internal::abs2(b/scale))); norm = scale*sqrt((numext::abs2(a/scale)) + (numext::abs2(b/scale)));
alpha = a/abs(a); alpha = a/abs(a);
*c = abs(a)/norm; *c = abs(a)/norm;
*s = alpha*internal::conj(b)/norm; *s = alpha*numext::conj(b)/norm;
a = alpha*norm; a = alpha*norm;
} }
#endif #endif

View File

@ -608,24 +608,24 @@ int EIGEN_BLAS_FUNC(her2k)(char *uplo, char *op, int *n, int *k, RealScalar *pal
if(UPLO(*uplo)==UP) if(UPLO(*uplo)==UP)
{ {
matrix(c, *n, *n, *ldc).triangularView<Upper>() matrix(c, *n, *n, *ldc).triangularView<Upper>()
+= alpha *matrix(a, *n, *k, *lda)*matrix(b, *n, *k, *ldb).adjoint() += alpha *matrix(a, *n, *k, *lda)*matrix(b, *n, *k, *ldb).adjoint()
+ internal::conj(alpha)*matrix(b, *n, *k, *ldb)*matrix(a, *n, *k, *lda).adjoint(); + numext::conj(alpha)*matrix(b, *n, *k, *ldb)*matrix(a, *n, *k, *lda).adjoint();
} }
else if(UPLO(*uplo)==LO) else if(UPLO(*uplo)==LO)
matrix(c, *n, *n, *ldc).triangularView<Lower>() matrix(c, *n, *n, *ldc).triangularView<Lower>()
+= alpha*matrix(a, *n, *k, *lda)*matrix(b, *n, *k, *ldb).adjoint() += alpha*matrix(a, *n, *k, *lda)*matrix(b, *n, *k, *ldb).adjoint()
+ internal::conj(alpha)*matrix(b, *n, *k, *ldb)*matrix(a, *n, *k, *lda).adjoint(); + numext::conj(alpha)*matrix(b, *n, *k, *ldb)*matrix(a, *n, *k, *lda).adjoint();
} }
else if(OP(*op)==ADJ) else if(OP(*op)==ADJ)
{ {
if(UPLO(*uplo)==UP) if(UPLO(*uplo)==UP)
matrix(c, *n, *n, *ldc).triangularView<Upper>() matrix(c, *n, *n, *ldc).triangularView<Upper>()
+= alpha*matrix(a, *k, *n, *lda).adjoint()*matrix(b, *k, *n, *ldb) += alpha*matrix(a, *k, *n, *lda).adjoint()*matrix(b, *k, *n, *ldb)
+ internal::conj(alpha)*matrix(b, *k, *n, *ldb).adjoint()*matrix(a, *k, *n, *lda); + numext::conj(alpha)*matrix(b, *k, *n, *ldb).adjoint()*matrix(a, *k, *n, *lda);
else if(UPLO(*uplo)==LO) else if(UPLO(*uplo)==LO)
matrix(c, *n, *n, *ldc).triangularView<Lower>() matrix(c, *n, *n, *ldc).triangularView<Lower>()
+= alpha*matrix(a, *k, *n, *lda).adjoint()*matrix(b, *k, *n, *ldb) += alpha*matrix(a, *k, *n, *lda).adjoint()*matrix(b, *k, *n, *ldb)
+ internal::conj(alpha)*matrix(b, *k, *n, *ldb).adjoint()*matrix(a, *k, *n, *lda); + numext::conj(alpha)*matrix(b, *k, *n, *ldb).adjoint()*matrix(a, *k, *n, *lda);
} }
return 1; return 1;