mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-21 09:09:36 +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)
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
|
@ -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>()
|
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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user