[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5446 - /trunk/getfem/src/getfem_generic_assembly.cc
From: |
andriy . andreykiv |
Subject: |
[Getfem-commits] r5446 - /trunk/getfem/src/getfem_generic_assembly.cc |
Date: |
Thu, 27 Oct 2016 12:43:01 -0000 |
Author: andrico
Date: Thu Oct 27 14:42:59 2016
New Revision: 5446
URL: http://svn.gna.org/viewcvs/getfem?rev=5446&view=rev
Log:
fixing DEFINE_STATIC_THREAD_LOCAL usage
Modified:
trunk/getfem/src/getfem_generic_assembly.cc
Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=5446&r1=5445&r2=5446&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Thu Oct 27 14:42:59 2016
@@ -72,8 +72,11 @@
extern bool predef_operators_plasticity_initialized;
extern bool predef_operators_contact_initialized;
- DEFINE_STATIC_THREAD_LOCAL(base_matrix, __mat_aux1)
-
+ base_matrix& __mat_aux1()
+ {
+ DEFINE_STATIC_THREAD_LOCAL(base_matrix, m);
+ return m;
+ }
//=========================================================================
// Lexical analysis for the generic assembly language
@@ -2337,16 +2340,16 @@
void derivative(const arg_list &args, size_type,
base_tensor &result) const { // to be verified
size_type N = args[0]->sizes()[0];
- __mat_aux1.base_resize(N, N);
- gmm::copy(args[0]->as_vector(), __mat_aux1.as_vector());
- scalar_type det = bgeot::lu_inverse(&(*(__mat_aux1.begin())), N);
+ __mat_aux1().base_resize(N, N);
+ gmm::copy(args[0]->as_vector(), __mat_aux1().as_vector());
+ scalar_type det = bgeot::lu_inverse(&(*(__mat_aux1().begin())), N);
if (det == scalar_type(0))
gmm::clear(result.as_vector());
else {
base_tensor::iterator it = result.begin();
for (size_type j = 0; j < N; ++j)
for (size_type i = 0; i < N; ++i, ++it)
- *it = __mat_aux1(j, i) * det;
+ *it = __mat_aux1()(j, i) * det;
GA_DEBUG_ASSERT(it == result.end(), "Internal error");
}
}
@@ -2355,9 +2358,9 @@
void second_derivative(const arg_list &args, size_type, size_type,
base_tensor &result) const { // To be verified
size_type N = args[0]->sizes()[0];
- __mat_aux1.base_resize(N, N);
- gmm::copy(args[0]->as_vector(), __mat_aux1.as_vector());
- scalar_type det = bgeot::lu_inverse(&(*(__mat_aux1.begin())), N);
+ __mat_aux1().base_resize(N, N);
+ gmm::copy(args[0]->as_vector(), __mat_aux1().as_vector());
+ scalar_type det = bgeot::lu_inverse(&(*(__mat_aux1().begin())), N);
if (det == scalar_type(0))
gmm::clear(result.as_vector());
else {
@@ -2366,8 +2369,8 @@
for (size_type k = 0; k < N; ++k)
for (size_type j = 0; j < N; ++j)
for (size_type i = 0; i < N; ++i, ++it)
- *it = (__mat_aux1(j, i) * __mat_aux1(l,k)
- - __mat_aux1(j,k) * __mat_aux1(l, i)) * det;
+ *it = (__mat_aux1()(j, i) * __mat_aux1()(l,k)
+ - __mat_aux1()(j,k) * __mat_aux1()(l, i)) * det;
GA_DEBUG_ASSERT(it == result.end(), "Internal error");
}
}
@@ -2387,25 +2390,25 @@
// Value : M^{-1}
void value(const arg_list &args, base_tensor &result) const {
size_type N = args[0]->sizes()[0];
- __mat_aux1.base_resize(N, N);
- gmm::copy(args[0]->as_vector(), __mat_aux1.as_vector());
- bgeot::lu_inverse(&(*(__mat_aux1.begin())), N);
- gmm::copy(__mat_aux1.as_vector(), result.as_vector());
+ __mat_aux1().base_resize(N, N);
+ gmm::copy(args[0]->as_vector(), __mat_aux1().as_vector());
+ bgeot::lu_inverse(&(*(__mat_aux1().begin())), N);
+ gmm::copy(__mat_aux1().as_vector(), result.as_vector());
}
// Derivative : -M^{-1}{ik}M^{-1}{lj} (comes from H -> M^{-1}HM^{-1})
void derivative(const arg_list &args, size_type,
base_tensor &result) const { // to be verified
size_type N = args[0]->sizes()[0];
- __mat_aux1.base_resize(N, N);
- gmm::copy(args[0]->as_vector(), __mat_aux1.as_vector());
- bgeot::lu_inverse(&(*(__mat_aux1.begin())), N);
+ __mat_aux1().base_resize(N, N);
+ gmm::copy(args[0]->as_vector(), __mat_aux1().as_vector());
+ bgeot::lu_inverse(&(*(__mat_aux1().begin())), N);
base_tensor::iterator it = result.begin();
for (size_type l = 0; l < N; ++l)
for (size_type k = 0; k < N; ++k)
for (size_type j = 0; j < N; ++j)
for (size_type i = 0; i < N; ++i, ++it)
- *it = -__mat_aux1(i,k)*__mat_aux1(l,j);
+ *it = -__mat_aux1()(i,k)*__mat_aux1()(l,j);
GA_DEBUG_ASSERT(it == result.end(), "Internal error");
}
@@ -2415,9 +2418,9 @@
void second_derivative(const arg_list &args, size_type, size_type,
base_tensor &result) const { // to be verified
size_type N = args[0]->sizes()[0];
- __mat_aux1.base_resize(N, N);
- gmm::copy(args[0]->as_vector(), __mat_aux1.as_vector());
- bgeot::lu_inverse(&(*(__mat_aux1.begin())), N);
+ __mat_aux1().base_resize(N, N);
+ gmm::copy(args[0]->as_vector(), __mat_aux1().as_vector());
+ bgeot::lu_inverse(&(*(__mat_aux1().begin())), N);
base_tensor::iterator it = result.begin();
for (size_type n = 0; n < N; ++n)
for (size_type m = 0; m < N; ++m)
@@ -2425,8 +2428,8 @@
for (size_type k = 0; k < N; ++k)
for (size_type j = 0; j < N; ++j)
for (size_type i = 0; i < N; ++i, ++it)
- *it = __mat_aux1(i,k)*__mat_aux1(l,m)*__mat_aux1(n,j)
- + __mat_aux1(i,m)*__mat_aux1(m,k)*__mat_aux1(l,j);
+ *it = __mat_aux1()(i,k)*__mat_aux1()(l,m)*__mat_aux1()(n,j)
+ + __mat_aux1()(i,m)*__mat_aux1()(m,k)*__mat_aux1()(l,j);
GA_DEBUG_ASSERT(it == result.end(), "Internal error");
}
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5446 - /trunk/getfem/src/getfem_generic_assembly.cc,
andriy . andreykiv <=