mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-20 16:49:38 +08:00
Add missing changes.
This commit is contained in:
parent
f3a029e957
commit
f75419c711
@ -30,10 +30,9 @@ struct selfadjoint_packed_rank1_update<Scalar,Index,ColMajor,UpLo,ConjLhs,ConjRh
|
||||
|
||||
for (Index i=0; i<size; ++i)
|
||||
{
|
||||
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)));
|
||||
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)));
|
||||
//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);
|
||||
}
|
||||
}
|
||||
|
@ -24,8 +24,8 @@ struct rank2_update_selector
|
||||
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)) +=
|
||||
conj(alpha) * 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));
|
||||
numext::conj(alpha) * numext::conj(u[i]) * OtherMap(v+(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)
|
||||
{
|
||||
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))
|
||||
+ alpha * conj(v[i]) * OtherMap(u+(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 * numext::conj(v[i]) * OtherMap(u+(UpLo==Lower ? i : 0), UpLo==Lower ? size-i : (i+1));
|
||||
//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);
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
struct scalar_norm1_op {
|
||||
typedef RealScalar result_type;
|
||||
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 internal {
|
||||
|
@ -120,10 +120,10 @@ int EIGEN_BLAS_FUNC(rotg)(RealScalar *pa, RealScalar *pb, RealScalar *pc, RealSc
|
||||
else
|
||||
{
|
||||
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);
|
||||
*c = abs(a)/norm;
|
||||
*s = alpha*internal::conj(b)/norm;
|
||||
*s = alpha*numext::conj(b)/norm;
|
||||
a = alpha*norm;
|
||||
}
|
||||
#endif
|
||||
|
@ -609,23 +609,23 @@ int EIGEN_BLAS_FUNC(her2k)(char *uplo, char *op, int *n, int *k, RealScalar *pal
|
||||
{
|
||||
matrix(c, *n, *n, *ldc).triangularView<Upper>()
|
||||
+= 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)
|
||||
matrix(c, *n, *n, *ldc).triangularView<Lower>()
|
||||
+= 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)
|
||||
{
|
||||
if(UPLO(*uplo)==UP)
|
||||
matrix(c, *n, *n, *ldc).triangularView<Upper>()
|
||||
+= 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)
|
||||
matrix(c, *n, *n, *ldc).triangularView<Lower>()
|
||||
+= 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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user