You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
8.3 KiB
209 lines
8.3 KiB
Fix building with gcc-4.5
|
|
|
|
http://bugs.gentoo.org/show_bug.cgi?id=318045
|
|
|
|
--- libs/libFreeMat/Array.cpp
|
|
+++ libs/libFreeMat/Array.cpp
|
|
@@ -465,7 +465,7 @@
|
|
|
|
void Array::set(const QString& field, ArrayVector& data) {
|
|
if (isEmpty() && m_type.Class != Struct)
|
|
- *this = Array::Array(Struct);
|
|
+ *this = Array(Struct);
|
|
if (m_type.Class != Struct) throw Exception("Unsupported type for A.field=B");
|
|
StructArray &rp(structPtr());
|
|
if (isEmpty())
|
|
--- libs/libFreeMat/Math.cpp
|
|
+++ libs/libFreeMat/Math.cpp
|
|
@@ -1590,9 +1590,9 @@
|
|
|
|
Array Not(const Array& A) {
|
|
if (A.isScalar())
|
|
- return Array::Array(!A.toClass(Bool).constRealScalar<bool>());
|
|
+ return Array(!A.toClass(Bool).constRealScalar<bool>());
|
|
const Array &Abool(A.toClass(Bool));
|
|
- return Array::Array(Apply(Abool.constReal<bool>(),notfunc));
|
|
+ return Array(Apply(Abool.constReal<bool>(),notfunc));
|
|
}
|
|
|
|
Array Plus(const Array& A) {
|
|
--- libs/libFreeMat/Operators.hpp
|
|
+++ libs/libFreeMat/Operators.hpp
|
|
@@ -142,11 +142,11 @@
|
|
if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray();
|
|
if (Acast.isScalar() && Bcast.isScalar()) {
|
|
if (Acast.allReal() && Bcast.allReal()) {
|
|
- F = Array::Array(Op::func(Acast.constRealScalar<T>(),
|
|
+ F = Array(Op::func(Acast.constRealScalar<T>(),
|
|
Bcast.constRealScalar<T>()));
|
|
} else {
|
|
Acast.forceComplex(); Bcast.forceComplex();
|
|
- F = Array::Array(T(0),T(0));
|
|
+ F = Array(T(0),T(0));
|
|
Op::func(Acast.constRealScalar<T>(),
|
|
Acast.constImagScalar<T>(),
|
|
Bcast.constRealScalar<T>(),
|
|
@@ -155,7 +155,7 @@
|
|
}
|
|
} else if (Acast.isScalar()) {
|
|
if (Acast.allReal() && Bcast.allReal()) {
|
|
- F = Array::Array(Tclass,Bcast.dimensions());
|
|
+ F = Array(Tclass,Bcast.dimensions());
|
|
T* ret = F.real<T>().data();
|
|
const T& Ap = Acast.constRealScalar<T>();
|
|
const T* Bp = Bcast.constReal<T>().constData();
|
|
@@ -163,7 +163,7 @@
|
|
for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]);
|
|
} else {
|
|
Acast.forceComplex(); Bcast.forceComplex();
|
|
- F = Array::Array(Tclass,Bcast.dimensions());
|
|
+ F = Array(Tclass,Bcast.dimensions());
|
|
T* Cr = F.real<T>().data();
|
|
T* Ci = F.imag<T>().data();
|
|
const T& Ar = Acast.constRealScalar<T>();
|
|
@@ -175,7 +175,7 @@
|
|
}
|
|
} else if (Bcast.isScalar()) {
|
|
if (Bcast.allReal() && Acast.allReal()) {
|
|
- F = Array::Array(Tclass,Acast.dimensions());
|
|
+ F = Array(Tclass,Acast.dimensions());
|
|
T* ret = F.real<T>().data();
|
|
const T* Ap = Acast.constReal<T>().constData();
|
|
const T& Bp = Bcast.constRealScalar<T>();
|
|
@@ -183,7 +183,7 @@
|
|
for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp);
|
|
} else {
|
|
Acast.forceComplex(); Bcast.forceComplex();
|
|
- F = Array::Array(Tclass,Acast.dimensions());
|
|
+ F = Array(Tclass,Acast.dimensions());
|
|
T* Cr = F.real<T>().data();
|
|
T* Ci = F.imag<T>().data();
|
|
const T* Ar = Acast.constReal<T>().constData();
|
|
@@ -197,7 +197,7 @@
|
|
if (Acast.dimensions() != Bcast.dimensions())
|
|
throw Exception("size mismatch in arguments to binary operator");
|
|
if (Bcast.allReal() && Acast.allReal()) {
|
|
- F = Array::Array(Tclass,Acast.dimensions());
|
|
+ F = Array(Tclass,Acast.dimensions());
|
|
T* ret = F.real<T>().data();
|
|
const T* Ap = Acast.constReal<T>().constData();
|
|
const T* Bp = Bcast.constReal<T>().constData();
|
|
@@ -205,7 +205,7 @@
|
|
for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp[i]);
|
|
} else {
|
|
Acast.forceComplex(); Bcast.forceComplex();
|
|
- F = Array::Array(Tclass,Acast.dimensions());
|
|
+ F = Array(Tclass,Acast.dimensions());
|
|
T* Cr = F.real<T>().data();
|
|
T* Ci = F.imag<T>().data();
|
|
const T* Ar = Acast.constReal<T>().constData();
|
|
@@ -328,17 +328,17 @@
|
|
if (!Acast.isScalar()) Acast = Acast.asDenseArray();
|
|
if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray();
|
|
if (Acast.isScalar() && Bcast.isScalar()) {
|
|
- F = Array::Array(Op::func(Acast.constRealScalar<T>(),
|
|
+ F = Array(Op::func(Acast.constRealScalar<T>(),
|
|
Bcast.constRealScalar<T>()));
|
|
} else if (Acast.isScalar()) {
|
|
- F = Array::Array(Bool,Bcast.dimensions());
|
|
+ F = Array(Bool,Bcast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T& Ap = Acast.constRealScalar<T>();
|
|
const T* Bp = Bcast.constReal<T>().constData();
|
|
uint64 q = uint64(Bcast.length());
|
|
for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]);
|
|
} else if (Bcast.isScalar()) {
|
|
- F = Array::Array(Bool,Acast.dimensions());
|
|
+ F = Array(Bool,Acast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T* Ap = Acast.constReal<T>().constData();
|
|
const T& Bp = Bcast.constRealScalar<T>();
|
|
@@ -347,7 +347,7 @@
|
|
} else {
|
|
if (Acast.dimensions() != Bcast.dimensions())
|
|
throw Exception("size mismatch in arguments to binary operator");
|
|
- F = Array::Array(Bool,Acast.dimensions());
|
|
+ F = Array(Bool,Acast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T* Ap = Acast.constReal<T>().constData();
|
|
const T* Bp = Bcast.constReal<T>().constData();
|
|
@@ -395,18 +395,18 @@
|
|
if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray();
|
|
if (Acast.isScalar() && Bcast.isScalar()) {
|
|
if (Acast.allReal() && Bcast.allReal()) {
|
|
- F = Array::Array(Op::func(Acast.constRealScalar<T>(),
|
|
+ F = Array(Op::func(Acast.constRealScalar<T>(),
|
|
Bcast.constRealScalar<T>()));
|
|
} else {
|
|
Acast.forceComplex(); Bcast.forceComplex();
|
|
- F = Array::Array(Op::func(Acast.constRealScalar<T>(),
|
|
+ F = Array(Op::func(Acast.constRealScalar<T>(),
|
|
Acast.constImagScalar<T>(),
|
|
Bcast.constRealScalar<T>(),
|
|
Bcast.constImagScalar<T>()));
|
|
}
|
|
} else if (Acast.isScalar()) {
|
|
if (Acast.allReal() && Bcast.allReal()) {
|
|
- F = Array::Array(Bool,Bcast.dimensions());
|
|
+ F = Array(Bool,Bcast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T& Ap = Acast.constRealScalar<T>();
|
|
const T* Bp = Bcast.constReal<T>().constData();
|
|
@@ -414,7 +414,7 @@
|
|
for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]);
|
|
} else {
|
|
Acast.forceComplex(); Bcast.forceComplex();
|
|
- F = Array::Array(Bool,Bcast.dimensions());
|
|
+ F = Array(Bool,Bcast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T& Ar = Acast.constRealScalar<T>();
|
|
const T& Ai = Acast.constImagScalar<T>();
|
|
@@ -425,7 +425,7 @@
|
|
}
|
|
} else if (Bcast.isScalar()) {
|
|
if (Bcast.allReal() && Acast.allReal()) {
|
|
- F = Array::Array(Bool,Acast.dimensions());
|
|
+ F = Array(Bool,Acast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T* Ap = Acast.constReal<T>().constData();
|
|
const T& Bp = Bcast.constRealScalar<T>();
|
|
@@ -433,7 +433,7 @@
|
|
for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp);
|
|
} else {
|
|
Acast.forceComplex(); Bcast.forceComplex();
|
|
- F = Array::Array(Bool,Acast.dimensions());
|
|
+ F = Array(Bool,Acast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T* Ar = Acast.constReal<T>().constData();
|
|
const T* Ai = Acast.constImag<T>().constData();
|
|
@@ -446,7 +446,7 @@
|
|
if (Acast.dimensions() != Bcast.dimensions())
|
|
throw Exception("size mismatch in arguments to binary operator");
|
|
if (Bcast.allReal() && Acast.allReal()) {
|
|
- F = Array::Array(Bool,Acast.dimensions());
|
|
+ F = Array(Bool,Acast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T* Ap = Acast.constReal<T>().constData();
|
|
const T* Bp = Bcast.constReal<T>().constData();
|
|
@@ -454,7 +454,7 @@
|
|
for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp[i]);
|
|
} else {
|
|
Acast.forceComplex(); Bcast.forceComplex();
|
|
- F = Array::Array(Bool,Acast.dimensions());
|
|
+ F = Array(Bool,Acast.dimensions());
|
|
bool* ret = F.real<bool>().data();
|
|
const T* Ar = Acast.constReal<T>().constData();
|
|
const T* Ai = Acast.constImag<T>().constData();
|
|
@@ -533,9 +533,9 @@
|
|
if (!Acast.isScalar()) Acast = Acast.asDenseArray();
|
|
if (Acast.isScalar()) {
|
|
if (Acast.allReal()) {
|
|
- F = Array::Array(Op::func(Acast.constRealScalar<T>()));
|
|
+ F = Array(Op::func(Acast.constRealScalar<T>()));
|
|
} else {
|
|
- F = Array::Array(T(0),T(0));
|
|
+ F = Array(T(0),T(0));
|
|
Op::func(Acast.constRealScalar<T>(),
|
|
Acast.constImagScalar<T>(),
|
|
F.realScalar<T>(),F.imagScalar<T>());
|