[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5061 - /trunk/getfem/src/getfem_generic_assembly.cc
From: |
logari81 |
Subject: |
[Getfem-commits] r5061 - /trunk/getfem/src/getfem_generic_assembly.cc |
Date: |
Tue, 28 Jul 2015 20:55:51 -0000 |
Author: logari81
Date: Tue Jul 28 22:55:51 2015
New Revision: 5061
URL: http://svn.gna.org/viewcvs/getfem?rev=5061&view=rev
Log:
use the nested format for explicit tensors in the output of ga_print_node
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=5061&r1=5060&r2=5061&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Tue Jul 28 22:55:51 2015
@@ -931,49 +931,35 @@
str << "]";
break;
- case 2:
- str << "[";
- for (size_type i = 0; i < pnode->tensor_proper_size(0); ++i) {
- if (i != 0) str << "; ";
- for (size_type j = 0; j < pnode->tensor_proper_size(1); ++j) {
- if (j != 0) str << ", ";
- str << (nt ? scalar_type(0) : pnode->t(i,j));
- }
- }
- str << "]";
- break;
-
- case 3:
- str << "[";
- for (size_type i = 0; i < pnode->tensor_proper_size(0); ++i) {
- if (i != 0) str << ",, ";
- for (size_type j = 0; j < pnode->tensor_proper_size(1); ++j) {
- if (j != 0) str << "; ";
- for (size_type k = 0; k < pnode->tensor_proper_size(2); ++k) {
- if (k != 0) str << ", ";
- str << (nt ? scalar_type(0) : pnode->t(i,j,k));
- }
- }
- }
- str << "]";
- break;
-
- case 4:
- str << "[";
- for (size_type i = 0; i < pnode->tensor_proper_size(0); ++i) {
- if (i != 0) str << ";; ";
- for (size_type j = 0; j < pnode->tensor_proper_size(1); ++j) {
- if (j != 0) str << ",, ";
- for (size_type k = 0; k < pnode->tensor_proper_size(2); ++k) {
- if (k != 0) str << "; ";
- for (size_type l = 0; l < pnode->tensor_proper_size(3); ++l) {
- if (l != 0) str << ", ";
- str << (nt ? scalar_type(0) : pnode->t(i,j,k,l));
+ case 2: case 3: case 4:
+ {
+ size_type ii(0);
+ size_type n0 = pnode->tensor_proper_size(0);
+ size_type n1 = pnode->tensor_proper_size(1);
+ size_type n2 = (pnode->tensor_order() > 2) ?
pnode->tensor_proper_size(2) : 1;
+ size_type n3 = (pnode->tensor_order() > 3) ?
pnode->tensor_proper_size(3) : 1;
+ if (n3 > 1) str << "[";
+ for (size_type l = 0; l < n3; ++l) {
+ if (l != 0) str << ",";
+ if (n2 > 1) str << "[";
+ for (size_type k = 0; k < n2; ++k) {
+ if (k != 0) str << ",";
+ if (n1 > 1) str << "[";
+ for (size_type j = 0; j < n1; ++j) {
+ if (j != 0) str << ",";
+ if (n0 > 1) str << "[";
+ for (size_type i = 0; i < n0; ++i) {
+ if (i != 0) str << ",";
+ str << (nt ? scalar_type(0) : pnode->t[ii++]);
+ }
+ if (n0 > 1) str << "]";
}
- }
- }
- }
- str << "]";
+ if (n1 > 1) str << "]";
+ }
+ if (n2 > 1) str << "]";
+ }
+ if (n3 > 1) str << "]";
+ }
break;
case 5: case 6:
@@ -1243,23 +1229,35 @@
break;
case GA_NODE_C_MATRIX:
- GMM_ASSERT1(pnode->children.size(), "Invalid tree");
- str << "[";
- for (size_type i = 0; i < pnode->children.size(); ++i) {
- if (i > 0) {
- if (i%pnode->nbc1 != 0) str << ", ";
- else {
- if (pnode->nbc2 > 1 || pnode->nbc3 > 1) {
- if (i%(pnode->nbc1*pnode->nbc2) != 0) str << "; ";
- else if (i%(pnode->nbc1*pnode->nbc2*pnode->nbc3) != 0)
- str << ",, ";
- else str << ";; ";
- } else str << "; ";
- }
- }
- ga_print_node(pnode->children[i], str);
- }
- str << "]";
+ {
+ GMM_ASSERT1(pnode->children.size(), "Invalid tree");
+ size_type nbc1 = pnode->nbc1;
+ size_type nbc2 = pnode->nbc2;
+ size_type nbc3 = pnode->nbc3;
+ size_type nbcl = pnode->children.size()/(nbc1*nbc2*nbc3);
+ if (nbc1 > 1) str << "[";
+ for (size_type i1 = 0; i1 < nbc1; ++i1) {
+ if (i1 != 0) str << ",";
+ if (nbc2 > 1) str << "[";
+ for (size_type i2 = 0; i2 < nbc2; ++i2) {
+ if (i2 != 0) str << ",";
+ if (nbc3 > 1) str << "[";
+ for (size_type i3 = 0; i3 < nbc3; ++i3) {
+ if (i3 != 0) str << ",";
+ if (nbcl > 1) str << "[";
+ for (size_type i4 = 0; i4 < nbcl; ++i4) {
+ if (i4 != 0) str << ",";
+ size_type ii = ((i4*nbc3 + i3)*nbc2 + i2)*nbc1 + i1;
+ ga_print_node(pnode->children[ii], str);
+ }
+ if (nbcl > 1) str << "]";
+ }
+ if (nbc3 > 1) str << "]";
+ }
+ if (nbc2 > 1) str << "]";
+ }
+ if (nbc1 > 1) str << "]";
+ }
break;
default:
@@ -5565,7 +5563,7 @@
std::string name = pnode->name;
size_type prefix_id = ga_parse_prefix_operator(name);
- size_type test = ga_parse_prefix_test(name);;
+ size_type test = ga_parse_prefix_test(name);
pnode->name = name;
// Group must be tested and it should be a fem variable
@@ -6532,7 +6530,7 @@
// divergence or test functions
size_type prefix_id = ga_parse_prefix_operator(name);
- size_type test = ga_parse_prefix_test(name);;
+ size_type test = ga_parse_prefix_test(name);
if (!(workspace.variable_exists(name)))
ga_throw_error(expr, pnode->pos, "Unknown variable, function, "
@@ -9310,7 +9308,7 @@
case GA_NODE_PARAMS:
if (child0->node_type == GA_NODE_RESHAPE) {
- pgai = new ga_instruction_copy_tensor(pnode->t, child1->t);;
+ pgai = new ga_instruction_copy_tensor(pnode->t, child1->t);
rmi.instructions.push_back(pgai);
} else if (child0->node_type == GA_NODE_PREDEF_FUNC) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5061 - /trunk/getfem/src/getfem_generic_assembly.cc,
logari81 <=