[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] [getfem-commits] branch master updated: minor modificat
From: |
Yves Renard |
Subject: |
[Getfem-commits] [getfem-commits] branch master updated: minor modification for clang compatibility |
Date: |
Wed, 13 Dec 2023 07:55:12 -0500 |
This is an automated email from the git hooks/post-receive script.
renard pushed a commit to branch master
in repository getfem.
The following commit(s) were added to refs/heads/master by this push:
new 3c37cc1a minor modification for clang compatibility
3c37cc1a is described below
commit 3c37cc1a5019b7dce6d2f5eb6c0bc4e60a8d1ca3
Author: Renard Yves <yves.renard@insa-lyon.fr>
AuthorDate: Wed Dec 13 13:49:15 2023 +0100
minor modification for clang compatibility
---
contrib/bimaterial_crack_test/crack.cc | 16 ++--
contrib/crack_plate/crack_bilaplacian_moment.cc | 14 +--
contrib/delaminated_crack/delaminated_crack.cc | 2 +-
contrib/icare/icare.cc | 26 +++---
contrib/opt_assembly/opt_assembly.cc | 4 +-
.../xfem_stab_unilat_contact.cc | 16 ++--
interface/src/gf_slice_get.cc | 2 +-
src/getfem/dal_basic.h | 6 ++
src/getfem/dal_bit_vector.h | 8 ++
src/getfem/dal_tas.h | 8 +-
src/getfem/getfem_generic_assembly.h | 4 +-
src/getfem/getfem_mesh_fem.h | 6 +-
src/getfem_contact_and_friction_large_sliding.cc | 12 +--
src/getfem_fem.cc | 4 +-
src/getfem_mesh_level_set.cc | 4 +-
src/getfem_mesher.cc | 2 +-
src/gmm/gmm_conjugated.h | 10 ++-
src/gmm/gmm_interface.h | 8 +-
src/gmm/gmm_real_part.h | 4 +
src/gmm/gmm_ref.h | 18 ++++
src/gmm/gmm_scaled.h | 14 ++-
src/gmm/gmm_std.h | 6 +-
src/gmm/gmm_sub_matrix.h | 8 +-
src/gmm/gmm_sub_vector.h | 4 +-
src/gmm/gmm_vector.h | 8 ++
src/gmm/gmm_vector_to_matrix.h | 8 +-
tests/crack.cc | 16 ++--
tests/heat_equation.cc | 2 +-
tests/integration.cc | 100 ++++++++++-----------
tests/nonlinear_elastostatic.cc | 2 +-
tests/poly.cc | 6 +-
tests/schwarz_additive.cc | 2 +-
tests/test_assembly.cc | 4 +-
tests/test_continuation.cc | 10 +--
tests/test_interpolated_fem.cc | 32 +++----
tests/test_mat_elem.cc | 64 ++++++-------
tests/wave_equation.cc | 2 +-
37 files changed, 274 insertions(+), 188 deletions(-)
diff --git a/contrib/bimaterial_crack_test/crack.cc
b/contrib/bimaterial_crack_test/crack.cc
index 3dfa8903..01964c1c 100644
--- a/contrib/bimaterial_crack_test/crack.cc
+++ b/contrib/bimaterial_crack_test/crack.cc
@@ -148,31 +148,31 @@ struct crack_problem {
std::string name_of_dof(getfem::pdof_description dof) {
char s[200];
- sprintf(s, "UnknownDof[%p]", (void*)dof);
+ snprintf(s, 199, "UnknownDof[%p]", (void*)dof);
for (dim_type d = 0; d < 4; ++d) {
if (dof == getfem::lagrange_dof(d)) {
- sprintf(s, "Lagrange[%d]", d); goto found;
+ snprintf(s, 199, "Lagrange[%d]", d); goto found;
}
if (dof == getfem::normal_derivative_dof(d)) {
- sprintf(s, "D_n[%d]", d); goto found;
+ snprintf(s, 199, "D_n[%d]", d); goto found;
}
if (dof == getfem::global_dof(d)) {
- sprintf(s, "GlobalDof[%d]", d);
+ snprintf(s, 199, "GlobalDof[%d]", d);
}
if (dof == getfem::mean_value_dof(d)) {
- sprintf(s, "MeanValue[%d]", d);
+ snprintf(s, 199, "MeanValue[%d]", d);
}
if (getfem::dof_xfem_index(dof) != 0) {
- sprintf(s, "Xfem[idx:%d]", int(dof_xfem_index(dof)));
+ snprintf(s, 199, "Xfem[idx:%d]", int(dof_xfem_index(dof)));
}
for (dim_type r = 0; r < d; ++r) {
if (dof == getfem::derivative_dof(d, r)) {
- sprintf(s, "D_%c[%d]", "xyzuvw"[r], d); goto found;
+ snprintf(s, 199, "D_%c[%d]", "xyzuvw"[r], d); goto found;
}
for (dim_type t = 0; t < d; ++t) {
if (dof == getfem::second_derivative_dof(d, r, t)) {
- sprintf(s, "D2%c%c[%d]", "xyzuvw"[r], "xyzuvw"[t], d);
+ snprintf(s, 199, "D2%c%c[%d]", "xyzuvw"[r], "xyzuvw"[t], d);
goto found;
}
}
diff --git a/contrib/crack_plate/crack_bilaplacian_moment.cc
b/contrib/crack_plate/crack_bilaplacian_moment.cc
index b542ad3e..405a04e2 100644
--- a/contrib/crack_plate/crack_bilaplacian_moment.cc
+++ b/contrib/crack_plate/crack_bilaplacian_moment.cc
@@ -79,9 +79,9 @@ size_type is_dx_dof_type(getfem::pdof_description dof){
size_type dx_dof = 0 ;
for (unsigned r = 0; r < 2; ++r) {
if (dof == getfem::derivative_dof(2,0)){
- sprintf(s, "D_%c[%d]", "xyzuvw"[r], 2);
- dx_dof = 1 ;
- }
+ snprintf(s, 199, "D_%c[%d]", "xyzuvw"[r], 2);
+ dx_dof = 1 ;
+ }
}
return dx_dof ;
}
@@ -91,10 +91,10 @@ size_type is_dy_dof_type(getfem::pdof_description dof){
size_type dy_dof = 0 ;
for (unsigned r = 0; r < 2; ++r) {
if (dof == getfem::derivative_dof(2,1)){
- sprintf(s, "D_%c[%d]", "xyzuvw"[r], 2);
- dy_dof = 1 ;
- cout << "passage dans is_dy_dof_type OK \n" ;
- }
+ snprintf(s, 199, "D_%c[%d]", "xyzuvw"[r], 2);
+ dy_dof = 1 ;
+ cout << "passage dans is_dy_dof_type OK \n" ;
+ }
}
return dy_dof ;
}
diff --git a/contrib/delaminated_crack/delaminated_crack.cc
b/contrib/delaminated_crack/delaminated_crack.cc
index ec1a46e5..5f8154bd 100644
--- a/contrib/delaminated_crack/delaminated_crack.cc
+++ b/contrib/delaminated_crack/delaminated_crack.cc
@@ -428,7 +428,7 @@ void crack_problem::shape_derivative(const plain_vector &U,
plain_vector &SD) {
// derivative of elastic energy
char s[500];
- sprintf(s, "u=data(#1);"
+ snprintf(s, 499, "u=data(#1);"
// "t=comp(vGrad(#1).vGrad(#1).vGrad(#2))(k,:,: ,l,:,:,:,:,:)
// ".u(k).u(l);"
"t=comp(vGrad(#1)(k,:,:).vGrad(#1)(l,:,:).vGrad(#2).u(k).u(l));"
diff --git a/contrib/icare/icare.cc b/contrib/icare/icare.cc
index 70f3ced0..4848f117 100644
--- a/contrib/icare/icare.cc
+++ b/contrib/icare/icare.cc
@@ -1521,12 +1521,12 @@ gmm :: sub_interval SUB_CT_P(0,nbdof_p);
}
if (PARAM.int_value("VTK_EXPORT")) {
static int cnta=0;
- char sa[128]; sprintf(sa, "SolIcare/DivUstar%d.vtk", cnta++);
+ char sa[128]; snprintf(sa, 127, "SolIcare/DivUstar%d.vtk", cnta++);
getfem::vtk_export tata(sa, PARAM.int_value("VTK_EXPORT")==1);
tata.exporting(mf_rhs);
tata.write_point_data(mf_rhs, DIV, "divergence");
- char sb[128]; sprintf(sb, "SolIcare/Ustar%d.vtk", cnta++);
+ char sb[128]; snprintf(sb, 127, "SolIcare/Ustar%d.vtk", cnta++);
getfem::vtk_export tbtb(sb, PARAM.int_value("VTK_EXPORT")==1);
tbtb.exporting(mf_u);
tbtb.write_point_data(mf_u, USTAR, "Ustar");
@@ -1719,7 +1719,7 @@ gmm :: sub_interval SUB_CT_P(0,nbdof_p);
}
if (PARAM.int_value("VTK_EXPORT")) {
static int cnta=0;
- char sa[128]; sprintf(sa, "SolIcare/DivU%d.vtk", cnta++);
+ char sa[128]; snprintf(sa, 127, "SolIcare/DivU%d.vtk", cnta++);
getfem::vtk_export tata(sa, PARAM.int_value("VTK_EXPORT")==1);
tata.exporting(mf_rhs);
tata.write_point_data(mf_rhs, DIV, "divergence");
@@ -1815,7 +1815,7 @@ gmm :: sub_interval SUB_CT_P(0,nbdof_p);
t_export += dt_export;
static int cnt = 0;
- char s[128]; sprintf(s, "SolIcare/icare.U%d", cnt++);
+ char s[128]; snprintf(s, 127, "SolIcare/icare.U%d", cnt++);
gmm::vecsave(s, Un0);
exp->write_point_data(mf_u, Un0);
exp->serie_add_object("velocity");
@@ -1825,12 +1825,12 @@ gmm :: sub_interval SUB_CT_P(0,nbdof_p);
exp->serie_add_object("pressure");
static int cntp=0;
- char sp[128]; sprintf(sp, "SolIcare/icare.P%d", cntp++);
+ char sp[128]; snprintf(sp, 127, "SolIcare/icare.P%d", cntp++);
gmm::vecsave(sp, Pn0);
if (PARAM.int_value("TIME_ORDER")==2){
static int cntm1 = 0;
- char sm1[128]; sprintf(sm1, "SolIcare/icare.Um%d", cntm1++);
+ char sm1[128]; snprintf(sm1, 127, "SolIcare/icare.Um%d", cntm1++);
gmm::vecsave(sm1, Unm1);
exp->write_point_data(mf_u, Unm1);
exp->serie_add_object("velocity");
@@ -1852,27 +1852,27 @@ gmm :: sub_interval SUB_CT_P(0,nbdof_p);
if (PARAM.int_value("VTK_EXPORT")) {
cout << "export to " << datafilename + "U.vtk" << "..\n";
static int cnta=0;
- char sa[128]; sprintf(sa, "SolIcare/icareU%d.vtk", cnta++);
+ char sa[128]; snprintf(sa, 127, "SolIcare/icareU%d.vtk", cnta++);
getfem::vtk_export tata( sa,PARAM.int_value("VTK_EXPORT")==1);
tata.exporting(mf_u);
tata.write_point_data(mf_u, Un0, "vitesse");
if (PARAM.int_value("TIME_ORDER")==2){
static int cntam1=0;
- char sam1[128]; sprintf(sam1, "SolIcare/icareUm%d.vtk", cntam1++);
+ char sam1[128]; snprintf(sam1, 127, "SolIcare/icareUm%d.vtk", cntam1++);
getfem::vtk_export tamtam( sam1,PARAM.int_value("VTK_EXPORT")==1);
tamtam.exporting(mf_u);
tamtam.write_point_data(mf_u, Unm1, "vitesse");
}
static int cnte=0;
- char se[128]; sprintf(se, "SolIcare/icareP%d.vtk", cnte++);
+ char se[128]; snprintf(se, 127, "SolIcare/icareP%d.vtk", cnte++);
getfem::vtk_export tete( se,PARAM.int_value("VTK_EXPORT")==1);
tete.exporting(mf_p);
tete.write_point_data(mf_p, Pn0, "pression");
//static int cnti=0;
- //char si[128]; sprintf(si, "SolIcare/icareRot%d.vtk", cnti++);
+ //char si[128]; snprintf(si, 127, "SolIcare/icareRot%d.vtk", cnti++);
//getfem::vtk_export titi( si, PARAM.int_value("VTK_EXPORT")==1);
//titi.exporting(mf_rhs);
//titi.write_point_data(mf_rhs, Rot, "rotationnel");
@@ -1890,17 +1890,17 @@ gmm :: sub_interval SUB_CT_P(0,nbdof_p);
// RotZ[i] = DU[i*N*N + 3] - DU[i*N*N + 1];
//
//static int cntt=0;
- //char st[128]; sprintf(st, "SolIcare/icareRotX%d.vtk", cntt++);
+ //char st[128]; snprintf(st, 127, "SolIcare/icareRotX%d.vtk", cntt++);
//getfem::vtk_export titi( st, PARAM.int_value("VTK_EXPORT")==1);
//titi.exporting(mf_rhs);
//titi.write_point_data(mf_rhs, RotX, "rotationnelX");
//static int cntu=0;
- //char su[128]; sprintf(su, "SolIcare/icareRotY%d.vtk", cntu++);
+ //char su[128]; snprintf(su, 127, "SolIcare/icareRotY%d.vtk", cntu++);
//getfem::vtk_export tete( su, PARAM.int_value("VTK_EXPORT")==1);
//tete.exporting(mf_rhs);
//tete.write_point_data(mf_rhs, RotY, "rotationnelY");
//static int cntv=0;
- //char sv[128]; sprintf(sv, "SolIcare/icareRotZ%d.vtk", cntv++);
+ //char sv[128]; snprintf(sv, 127, "SolIcare/icareRotZ%d.vtk", cntv++);
//getfem::vtk_export tyty( sv, PARAM.int_value("VTK_EXPORT")==1);
//tyty.exporting(mf_rhs);
//tyty.write_point_data(mf_rhs, RotZ, "rotationnelZ");
diff --git a/contrib/opt_assembly/opt_assembly.cc
b/contrib/opt_assembly/opt_assembly.cc
index 534b9d71..41a3f6ae 100644
--- a/contrib/opt_assembly/opt_assembly.cc
+++ b/contrib/opt_assembly/opt_assembly.cc
@@ -389,8 +389,8 @@ static void test_new_assembly(int N, int NX, int pK) {
getfem::mesh m;
- char Ns[5]; sprintf(Ns, "%d", N);
- char Ks[5]; sprintf(Ks, "%d", pK);
+ char Ns[5]; snprintf(Ns, 5, "%d", N);
+ char Ks[5]; snprintf(Ks, 5, "%d", pK);
bgeot::pgeometric_trans pgt =
bgeot::geometric_trans_descriptor
((std::string("GT_PK(") + Ns + ",1)").c_str());
diff --git a/contrib/xfem_stab_unilat_contact/xfem_stab_unilat_contact.cc
b/contrib/xfem_stab_unilat_contact/xfem_stab_unilat_contact.cc
index 57917015..446be071 100644
--- a/contrib/xfem_stab_unilat_contact/xfem_stab_unilat_contact.cc
+++ b/contrib/xfem_stab_unilat_contact/xfem_stab_unilat_contact.cc
@@ -687,31 +687,31 @@ struct unilateral_contact_problem {
std::string name_of_dof(getfem::pdof_description dof) {
char s[200];
- sprintf(s, "UnknownDof[%p]", (void*)dof);
+ snprintf(s, 199, "UnknownDof[%p]", (void*)dof);
for (dim_type d = 0; d < 4; ++d) {
if (dof == getfem::lagrange_dof(d)) {
- sprintf(s, "Lagrange[%d]", d); goto found;
+ snprintf(s, 199, "Lagrange[%d]", d); goto found;
}
if (dof == getfem::normal_derivative_dof(d)) {
- sprintf(s, "D_n[%d]", d); goto found;
+ snprintf(s, 199, "D_n[%d]", d); goto found;
}
if (dof == getfem::global_dof(d)) {
- sprintf(s, "GlobalDof[%d]", d);
+ snprintf(s, 199, "GlobalDof[%d]", d);
}
if (dof == getfem::mean_value_dof(d)) {
- sprintf(s, "MeanValue[%d]", d);
+ snprintf(s, 199, "MeanValue[%d]", d);
}
if (getfem::dof_xfem_index(dof) != 0) {
- sprintf(s, "Xfem[idx:%d]", int(dof_xfem_index(dof)));
+ snprintf(s, 199, "Xfem[idx:%d]", int(dof_xfem_index(dof)));
}
for (dim_type r = 0; r < d; ++r) {
if (dof == getfem::derivative_dof(d, r)) {
- sprintf(s, "D_%c[%d]", "xyzuvw"[r], d); goto found;
+ snprintf(s, 199, "D_%c[%d]", "xyzuvw"[r], d); goto found;
}
for (dim_type t = 0; t < d; ++t) {
if (dof == getfem::second_derivative_dof(d, r, t)) {
- sprintf(s, "D2%c%c[%d]", "xyzuvw"[r], "xyzuvw"[t], d);
+ snprintf(s, 199, "D2%c%c[%d]", "xyzuvw"[r], "xyzuvw"[t], d);
goto found;
}
}
diff --git a/interface/src/gf_slice_get.cc b/interface/src/gf_slice_get.cc
index 9a47f097..cc22b486 100644
--- a/interface/src/gf_slice_get.cc
+++ b/interface/src/gf_slice_get.cc
@@ -29,7 +29,7 @@ using namespace getfemint;
static void fmt_pt_povray(std::ofstream &f, const getfem::base_node &pt) {
char s[100];
if (pt.size() == 0) GMM_THROW(getfemint_error, "empty point");
- sprintf(s, "<%g,%g,%g>",pt[0],pt.size() > 1 ? pt[1] : 0., pt.size() > 2 ?
pt[2] : 0.);
+ snprintf(s, 99, "<%g,%g,%g>",pt[0],pt.size() > 1 ? pt[1] : 0., pt.size() > 2
? pt[2] : 0.);
f << s;
}
diff --git a/src/getfem/dal_basic.h b/src/getfem/dal_basic.h
index e0c2e3e3..1c9694b2 100644
--- a/src/getfem/dal_basic.h
+++ b/src/getfem/dal_basic.h
@@ -104,6 +104,8 @@ namespace dal
bool operator ==(const dna_iterator &i) const { return (i.in==in);}
bool operator !=(const dna_iterator &i) const { return (i.in!=in);}
bool operator < (const dna_iterator &i) const { return ( in<i.in);}
+ bool operator >=(const dna_iterator &i) const { return ( in>=i.in);}
+ bool operator > (const dna_iterator &i) const { return ( in>i.in);}
};
/// Constant iterator class for dynamic array.
@@ -160,6 +162,10 @@ namespace dal
{ return (i.in != in); }
bool operator < (const dna_const_iterator &i) const
{ return (in < i.in); }
+ bool operator >=(const dna_const_iterator &i) const
+ { return (i.in >= in); }
+ bool operator > (const dna_const_iterator &i) const
+ { return (in > i.in); }
};
/** Dynamic Array. Defines the basic container of the library which is
diff --git a/src/getfem/dal_bit_vector.h b/src/getfem/dal_bit_vector.h
index c7dc4aa8..1fe86b4b 100644
--- a/src/getfem/dal_bit_vector.h
+++ b/src/getfem/dal_bit_vector.h
@@ -82,6 +82,10 @@ namespace dal {
{ return bool(*this) == bool(x); }
bool operator<(const bit_reference& x) const
{ return bool(*this) < bool(x); }
+ bool operator>(const bit_reference& x) const
+ { return bool(*this) > bool(x); }
+ bool operator>=(const bit_reference& x) const
+ { return bool(*this) >= bool(x); }
void flip(void) { if (bool(*this)) *this = false; else *this = true; }
};
@@ -126,6 +130,8 @@ namespace dal {
bool operator==(const bit_iterator& x) const { return ind == x.ind; }
bool operator!=(const bit_iterator& x) const { return ind != x.ind; }
bool operator<(bit_iterator x) const { return ind < x.ind; }
+ bool operator>(bit_iterator x) const { return ind > x.ind; }
+ bool operator>=(bit_iterator x) const { return ind >= x.ind; }
};
struct APIDECL bit_const_iterator {
@@ -170,6 +176,8 @@ namespace dal {
bool operator==(const bit_const_iterator& x) const { return ind == x.ind; }
bool operator!=(const bit_const_iterator& x) const { return ind != x.ind; }
bool operator<(bit_const_iterator x) const { return ind < x.ind; }
+ bool operator>(bit_const_iterator x) const { return ind > x.ind; }
+ bool operator>=(bit_const_iterator x) const { return ind >= x.ind; }
};
///Dynamic bit container.
diff --git a/src/getfem/dal_tas.h b/src/getfem/dal_tas.h
index 788052ed..e857c109 100644
--- a/src/getfem/dal_tas.h
+++ b/src/getfem/dal_tas.h
@@ -81,7 +81,9 @@ namespace dal
bool operator ==(const dnt_iterator &i) const { return i.id==id;}
bool operator !=(const dnt_iterator &i) const { return i.id!=id;}
- bool operator < (const dnt_iterator &i) const { return id <i.id;}
+ bool operator < (const dnt_iterator &i) const { return id < i.id;}
+ bool operator > (const dnt_iterator &i) const { return id > i.id;}
+ bool operator >=(const dnt_iterator &i) const { return id >= i.id;}
};
template<class T, unsigned char pks> dnt_iterator<T, pks> &
@@ -129,6 +131,10 @@ namespace dal
{ return i.id != id;}
bool operator < (const dnt_const_iterator &i) const
{ return id < i.id;}
+ bool operator > (const dnt_const_iterator &i) const
+ { return id > i.id;}
+ bool operator >=(const dnt_const_iterator &i) const
+ { return id >= i.id;}
};
template<class T, unsigned char pks> class dynamic_tas
diff --git a/src/getfem/getfem_generic_assembly.h
b/src/getfem/getfem_generic_assembly.h
index 1eb582eb..61f010bc 100644
--- a/src/getfem/getfem_generic_assembly.h
+++ b/src/getfem/getfem_generic_assembly.h
@@ -271,7 +271,7 @@ namespace getfem {
struct var_description {
- const bool is_variable;
+ bool is_variable;
const mesh_fem *mf;
const im_data *imd;
gmm::sub_interval I;
@@ -279,7 +279,7 @@ namespace getfem {
bgeot::multi_index qdims; // For data having a qdim different than the
// qdim of the fem or im_data (dim per dof for
// dof data) and for constant variables.
- const bool is_internal;
+ bool is_internal;
size_type qdim() const {
size_type q = 1;
diff --git a/src/getfem/getfem_mesh_fem.h b/src/getfem/getfem_mesh_fem.h
index 52a824e6..38df5461 100644
--- a/src/getfem/getfem_mesh_fem.h
+++ b/src/getfem/getfem_mesh_fem.h
@@ -86,7 +86,11 @@ namespace getfem {
{ return (it == i.it) && (ii == i.ii); }
bool operator !=(const iterator &i) const { return !(i == *this); }
bool operator < (const iterator &i) const
- { return (it < i.it) && (ii < i.ii); }
+ { return (it < i.it) || ((it == i.it) && (ii < i.ii)); }
+ bool operator > (const iterator &i) const
+ { return (it > i.it) || ((it == i.it) && (ii > i.ii)); }
+ bool operator >= (const iterator &i) const
+ { return (it > i.it) || ((it == i.it) && (ii >= i.ii)); }
tab_scal_to_vect_iterator() {}
tab_scal_to_vect_iterator(const ITER &iter, dim_type n, dim_type i)
diff --git a/src/getfem_contact_and_friction_large_sliding.cc
b/src/getfem_contact_and_friction_large_sliding.cc
index ab45a51f..a59ea124 100644
--- a/src/getfem_contact_and_friction_large_sliding.cc
+++ b/src/getfem_contact_and_friction_large_sliding.cc
@@ -2598,7 +2598,7 @@ namespace getfem {
char ugroupname[50], wgroupname[50], transname[50];
for (int i = 0; i < 10000; ++i) {
- sprintf(ugroupname, "disp__group_raytracing_%d", i);
+ snprintf(ugroupname, 49, "disp__group_raytracing_%d", i);
if (!(md.variable_group_exists(ugroupname))
&& !(md.variable_exists(ugroupname)))
break;
@@ -2606,7 +2606,7 @@ namespace getfem {
md.define_variable_group(ugroupname, std::vector<std::string>());
for (int i = 0; i < 10000; ++i) {
- sprintf(wgroupname, "w__group_raytracing_%d", i);
+ snprintf(wgroupname, 49, "w__group_raytracing_%d", i);
if (!(md.variable_group_exists(wgroupname))
&& !(md.variable_exists(wgroupname)))
break;
@@ -2614,7 +2614,7 @@ namespace getfem {
md.define_variable_group(wgroupname, std::vector<std::string>());
for (int i = 0; i < 10000; ++i) {
- sprintf(transname, "trans__raytracing_%d", i);
+ snprintf(transname, 49, "trans__raytracing_%d", i);
if (!(md.interpolate_transformation_exists(transname)))
break;
}
@@ -2935,7 +2935,7 @@ namespace getfem {
char ugroupname[50], wgroupname[50], transname[50];
for (int i = 0; i < 10000; ++i) {
- sprintf(ugroupname, "disp__group_raytracing_%d", i);
+ snprintf(ugroupname, 49, "disp__group_raytracing_%d", i);
if (!(md.variable_group_exists(ugroupname))
&& !(md.variable_exists(ugroupname)))
break;
@@ -2943,7 +2943,7 @@ namespace getfem {
md.define_variable_group(ugroupname, std::vector<std::string>());
for (int i = 0; i < 10000; ++i) {
- sprintf(wgroupname, "w__group_raytracing_%d", i);
+ snprintf(wgroupname, 49, "w__group_raytracing_%d", i);
if (!(md.variable_group_exists(wgroupname))
&& !(md.variable_exists(wgroupname)))
break;
@@ -2951,7 +2951,7 @@ namespace getfem {
md.define_variable_group(wgroupname, std::vector<std::string>());
for (int i = 0; i < 10000; ++i) {
- sprintf(transname, "trans__raytracing_%d", i);
+ snprintf(transname, 49, "trans__raytracing_%d", i);
if (!(md.interpolate_transformation_exists(transname)))
break;
}
diff --git a/src/getfem_fem.cc b/src/getfem_fem.cc
index 8ce7803a..1dd4698c 100644
--- a/src/getfem_fem.cc
+++ b/src/getfem_fem.cc
@@ -1023,7 +1023,7 @@ namespace getfem {
if (discontinuous && params.size() == 3) {
scalar_type v = params[2].num();
GMM_ASSERT1(v >= 0 && v <= 1, "Bad value for alpha: " << v);
- sprintf(alpha, ",%g", v);
+ snprintf(alpha, 127, ",%g", v);
}
GMM_ASSERT1(n > 0 && n < 100 && k >= 0 && k <= 150 &&
double(n) == params[0].num() && double(k) == params[1].num(),
@@ -1087,7 +1087,7 @@ namespace getfem {
if (params.size() == 3) {
scalar_type v = params[2].num();
GMM_ASSERT1(v >= 0 && v <= 1, "Bad value for alpha: " << v);
- sprintf(alpha, ",%g", v);
+ snprintf(alpha, 127, ",%g", v);
}
GMM_ASSERT1(n > 1 && n < 100 && k >= 0 && k <= 150 &&
double(n) == params[0].num() && double(k) == params[1].num(),
diff --git a/src/getfem_mesh_level_set.cc b/src/getfem_mesh_level_set.cc
index a720e58c..c1f04980 100644
--- a/src/getfem_mesh_level_set.cc
+++ b/src/getfem_mesh_level_set.cc
@@ -645,7 +645,7 @@ struct Chrono {
if (noisy) {
getfem::stored_mesh_slice sl;
sl.build(msh, getfem::slicer_none(), 1);
- char s[512]; sprintf(s, "totobefore%d.dx", int(cv));
+ char s[512]; snprintf(s, 511, "totobefore%d.dx", int(cv));
getfem::dx_export exp(s);
exp.exporting(sl);
exp.exporting_mesh_edges();
@@ -705,7 +705,7 @@ struct Chrono {
if (noisy) {
getfem::stored_mesh_slice sl;
sl.build(msh, getfem::slicer_none(), 12);
- char s[512]; sprintf(s, "toto%d.dx", int(cv));
+ char s[512]; snprintf(s, 511, "toto%d.dx", int(cv));
getfem::dx_export exp(s);
exp.exporting(sl);
exp.exporting_mesh_edges();
diff --git a/src/getfem_mesher.cc b/src/getfem_mesher.cc
index 01349224..8eae26f3 100644
--- a/src/getfem_mesher.cc
+++ b/src/getfem_mesher.cc
@@ -1291,7 +1291,7 @@ namespace getfem {
// for (size_type i=0; i < t.size()/(N+1); ++i)
// m.add_convex_by_points(bgeot::simplex_geotrans(N,1),
// dal::index_ref_iterator(pts.begin(), &t[i*(N+1)]));
- // char s[50]; sprintf(s, "toto%02d.mesh", count);
+ // char s[50]; snprintf(s, 49, "toto%02d.mesh", count);
// m.write_to_file(s);
if ( (count > 40 && sqrt(maxdp)*deltat < ptol * h0)
diff --git a/src/gmm/gmm_conjugated.h b/src/gmm/gmm_conjugated.h
index 2ff8ad19..f7684204 100644
--- a/src/gmm/gmm_conjugated.h
+++ b/src/gmm/gmm_conjugated.h
@@ -86,6 +86,10 @@ namespace gmm {
{ return (i.it != it); }
bool operator < (const conjugated_const_iterator &i) const
{ return (it < i.it); }
+ bool operator > (const conjugated_const_iterator &i) const
+ { return (it > i.it); }
+ bool operator >= (const conjugated_const_iterator &i) const
+ { return (it >= i.it); }
};
template <typename V> struct conjugated_vector_const_ref {
@@ -170,6 +174,8 @@ namespace gmm {
bool operator ==(const iterator &i) const { return (it == i.it); }
bool operator !=(const iterator &i) const { return !(i == *this); }
bool operator < (const iterator &i) const { return (it < i.it); }
+ bool operator > (const iterator &i) const { return (it > i.it); }
+ bool operator >=(const iterator &i) const { return (it >= i.it); }
conjugated_row_const_iterator(void) {}
conjugated_row_const_iterator(const ITER &i) : it(i) { }
@@ -227,7 +233,9 @@ namespace gmm {
bool operator ==(const iterator &i) const { return (it == i.it); }
bool operator !=(const iterator &i) const { return !(i == *this); }
- bool operator < (const iterator &i) const { return (it < i.it); }
+ bool operator < (const iterator &i) const { return (it < i.it); }
+ bool operator > (const iterator &i) const { return (it > i.it); }
+ bool operator >=(const iterator &i) const { return (it >= i.it); }
conjugated_col_const_iterator(void) {}
conjugated_col_const_iterator(const ITER &i) : it(i) { }
diff --git a/src/gmm/gmm_interface.h b/src/gmm/gmm_interface.h
index 6635a25b..fb3cc0e5 100644
--- a/src/gmm/gmm_interface.h
+++ b/src/gmm/gmm_interface.h
@@ -475,6 +475,10 @@ namespace gmm {
bool operator !=(const iterator &ii) const { return !(ii == *this); }
bool operator < (const iterator &ii) const
{ return (*this - ii) < difference_type(0); }
+ bool operator > (const iterator &ii) const
+ { return (*this - ii) > difference_type(0); }
+ bool operator >=(const iterator &ii) const
+ { return (*this - ii) >= difference_type(0); }
dense_compressed_iterator(void) {}
dense_compressed_iterator(const dense_compressed_iterator<MIT,MIT,MPT> &ii)
@@ -613,7 +617,9 @@ namespace gmm {
bool operator ==(const iterator &i) const { return (jc == i.jc); }
bool operator !=(const iterator &i) const { return !(i == *this); }
- bool operator < (const iterator &i) const { return (jc < i.jc); }
+ bool operator < (const iterator &i) const { return (jc < i.jc); }
+ bool operator > (const iterator &i) const { return (jc > i.jc); }
+ bool operator >=(const iterator &i) const { return (jc >= i.jc); }
sparse_compressed_iterator(void) {}
sparse_compressed_iterator(PT1 p1, PT2 p2, PT3 p3, size_type nn,
diff --git a/src/gmm/gmm_real_part.h b/src/gmm/gmm_real_part.h
index 0ea6d4dd..6a24debb 100644
--- a/src/gmm/gmm_real_part.h
+++ b/src/gmm/gmm_real_part.h
@@ -170,6 +170,10 @@ namespace gmm {
{ return (i.it != it); }
bool operator < (const part_vector_iterator &i) const
{ return (it < i.it); }
+ bool operator > (const part_vector_iterator &i) const
+ { return (it > i.it); }
+ bool operator >=(const part_vector_iterator &i) const
+ { return (it >= i.it); }
};
diff --git a/src/gmm/gmm_ref.h b/src/gmm/gmm_ref.h
index b41fbdd5..7c629542 100644
--- a/src/gmm/gmm_ref.h
+++ b/src/gmm/gmm_ref.h
@@ -156,6 +156,16 @@ namespace gmm {
// return ((piter) == ((i.piter))
// && *((dnas_iterator_ *)(this)) < *((*((dnas_iterator_ *)(this)))));
// }
+// bool operator > (const iterator &i) const
+// {
+// return ((piter) == ((i.piter))
+// && *((dnas_iterator_ *)(this)) > *((*((dnas_iterator_ *)(this)))));
+// }
+// bool operator >= (const iterator &i) const
+// {
+// return ((piter) == ((i.piter))
+// && *((dnas_iterator_ *)(this)) >= *((*((dnas_iterator_ *)(this)))));
+// }
// tab_ref_index_iterator_(void) {}
// tab_ref_index_iterator_(const ITER &iter, const dnas_iterator_
&dnas_iter)
@@ -264,6 +274,10 @@ namespace gmm {
bool operator !=(const iterator &i) const { return !(i == *this); }
bool operator < (const iterator &i) const
{ return ((piter) == ((i.piter)) && iter_index < i.iter_index); }
+ bool operator > (const iterator &i) const
+ { return ((piter) == ((i.piter)) && iter_index > i.iter_index); }
+ bool operator >=(const iterator &i) const
+ { return ((piter) == ((i.piter)) && iter_index >= i.iter_index); }
tab_ref_index_ref_iterator_(void) {}
tab_ref_index_ref_iterator_(const ITER &iter,
@@ -385,6 +399,10 @@ namespace gmm {
{ return (*this - ii) != difference_type(0); }
bool operator < (const iterator &ii) const
{ return (*this - ii) < difference_type(0); }
+ bool operator >=(const iterator &ii) const
+ { return (*this - ii) >= difference_type(0); }
+ bool operator > (const iterator &ii) const
+ { return (*this - ii) > difference_type(0); }
tab_ref_reg_spaced_iterator_(void) {}
tab_ref_reg_spaced_iterator_(const ITER &iter, size_type n, size_type ii)
diff --git a/src/gmm/gmm_scaled.h b/src/gmm/gmm_scaled.h
index 0d7d563c..9f1518f4 100644
--- a/src/gmm/gmm_scaled.h
+++ b/src/gmm/gmm_scaled.h
@@ -87,7 +87,11 @@ namespace gmm {
inline bool operator !=(const scaled_const_iterator &i) const
{ return (i.it != it); }
inline bool operator < (const scaled_const_iterator &i) const
- { return (it < i.it); }
+ { return (it < i.it); }
+ inline bool operator > (const scaled_const_iterator &i) const
+ { return (it > i.it); }
+ inline bool operator >=(const scaled_const_iterator &i) const
+ { return (it >= i.it); }
};
template <typename V, typename S> struct scaled_vector_const_ref {
@@ -146,7 +150,9 @@ namespace gmm {
inline bool operator ==(const iterator &i) const { return (it == i.it); }
inline bool operator !=(const iterator &i) const { return !(i == *this); }
- inline bool operator < (const iterator &i) const { return (it < i.it); }
+ inline bool operator < (const iterator &i) const { return (it < i.it); }
+ inline bool operator >=(const iterator &i) const { return (it >= i.it); }
+ inline bool operator > (const iterator &i) const { return (it > i.it); }
scaled_row_const_iterator(void) {}
scaled_row_const_iterator(const ITER &i, S rr)
@@ -207,7 +213,9 @@ namespace gmm {
bool operator ==(const iterator &i) const { return (it == i.it); }
bool operator !=(const iterator &i) const { return !(i == *this); }
- bool operator < (const iterator &i) const { return (it < i.it); }
+ bool operator < (const iterator &i) const { return (it < i.it); }
+ bool operator > (const iterator &i) const { return (it > i.it); }
+ bool operator >=(const iterator &i) const { return (it >= i.it); }
scaled_col_const_iterator(void) {}
scaled_col_const_iterator(const ITER &i, S rr)
diff --git a/src/gmm/gmm_std.h b/src/gmm/gmm_std.h
index 413df776..6ed41a32 100644
--- a/src/gmm/gmm_std.h
+++ b/src/gmm/gmm_std.h
@@ -68,9 +68,9 @@
# define SECURE_NONCHAR_FSCANF fscanf
# define SECURE_STRNCPY(a, la, b, lb) strncpy(a, b, lb)
# define SECURE_FOPEN(F, filename, mode) ((*(F)) = fopen(filename, mode))
-# define SECURE_SPRINTF1(S, l, st, p1) sprintf(S, st, p1)
-# define SECURE_SPRINTF2(S, l, st, p1, p2) sprintf(S, st, p1, p2)
-# define SECURE_SPRINTF4(S, l, st, p1, p2, p3, p4) sprintf(S, st, p1, p2, p3,
p4)
+# define SECURE_SPRINTF1(S, l, st, p1) snprintf(S, l, st, p1)
+# define SECURE_SPRINTF2(S, l, st, p1, p2) snprintf(S, l, st, p1, p2)
+# define SECURE_SPRINTF4(S, l, st, p1, p2, p3, p4) snprintf(S, l, st, p1, p2,
p3, p4)
# define SECURE_STRDUP(s) strdup(s)
#endif
diff --git a/src/gmm/gmm_sub_matrix.h b/src/gmm/gmm_sub_matrix.h
index 998a7662..f89d626e 100644
--- a/src/gmm/gmm_sub_matrix.h
+++ b/src/gmm/gmm_sub_matrix.h
@@ -115,7 +115,9 @@ namespace gmm {
bool operator ==(const iterator &i) const { return (ii == i.ii); }
bool operator !=(const iterator &i) const { return !(i == *this); }
- bool operator < (const iterator &i) const { return (ii < i.ii); }
+ bool operator < (const iterator &i) const { return (ii < i.ii); }
+ bool operator > (const iterator &i) const { return (ii > i.ii); }
+ bool operator >=(const iterator &i) const { return (ii >= i.ii); }
gen_sub_row_matrix_iterator(void) {}
gen_sub_row_matrix_iterator(const
@@ -263,7 +265,9 @@ namespace gmm {
bool operator ==(const iterator &i) const { return (ii == i.ii); }
bool operator !=(const iterator &i) const { return !(i == *this); }
- bool operator < (const iterator &i) const { return (ii < i.ii); }
+ bool operator < (const iterator &i) const { return (ii < i.ii); }
+ bool operator > (const iterator &i) const { return (ii > i.ii); }
+ bool operator >=(const iterator &i) const { return (ii >= i.ii); }
gen_sub_col_matrix_iterator(void) {}
gen_sub_col_matrix_iterator(const
diff --git a/src/gmm/gmm_sub_vector.h b/src/gmm/gmm_sub_vector.h
index 8e99eb80..c75c8a7b 100644
--- a/src/gmm/gmm_sub_vector.h
+++ b/src/gmm/gmm_sub_vector.h
@@ -309,7 +309,9 @@ namespace gmm {
bool operator ==(const iterator &i) const { return index() == i.index();}
bool operator !=(const iterator &i) const { return !(i == *this); }
- bool operator < (const iterator &i) const { return index() < i.index();}
+ bool operator < (const iterator &i) const { return index() < i.index();}
+ bool operator > (const iterator &i) const { return index() > i.index();}
+ bool operator >=(const iterator &i) const { return index() >= i.index();}
skyline_sub_vector_iterator() {}
skyline_sub_vector_iterator(const IT &it, const SUBI &s)
diff --git a/src/gmm/gmm_vector.h b/src/gmm/gmm_vector.h
index 2e4919bf..7e6e5dcc 100644
--- a/src/gmm/gmm_vector.h
+++ b/src/gmm/gmm_vector.h
@@ -1367,6 +1367,10 @@ namespace gmm {
{ return !(i == *this); }
bool operator < (const iterator &i) const
{ return it < i.it; }
+ bool operator > (const iterator &i) const
+ { return it > i.it; }
+ bool operator >=(const iterator &i) const
+ { return it >= i.it; }
size_type index() const { return shift; }
slvector_iterator() {}
@@ -1418,6 +1422,10 @@ namespace gmm {
{ return !(i == *this); }
bool operator < (const iterator &i) const
{ return it < i.it; }
+ bool operator > (const iterator &i) const
+ { return it > i.it; }
+ bool operator >=(const iterator &i) const
+ { return it >= i.it; }
size_type index() const { return shift; }
slvector_const_iterator() {}
diff --git a/src/gmm/gmm_vector_to_matrix.h b/src/gmm/gmm_vector_to_matrix.h
index 95b0bea1..66d691e4 100644
--- a/src/gmm/gmm_vector_to_matrix.h
+++ b/src/gmm/gmm_vector_to_matrix.h
@@ -101,7 +101,9 @@ namespace gmm {
bool operator ==(const iterator &i) const { return (isend == i.isend); }
bool operator !=(const iterator &i) const { return !(i == *this); }
- bool operator < (const iterator &i) const { return (*this - i < 0); }
+ bool operator < (const iterator &i) const { return (*this - i < 0); }
+ bool operator > (const iterator &i) const { return (*this - i > 0); }
+ bool operator >=(const iterator &i) const { return (*this - i >= 0); }
gen_row_vector_iterator(void) {}
gen_row_vector_iterator(const gen_row_vector_iterator<MPT> &itm)
@@ -225,7 +227,9 @@ namespace gmm {
bool operator ==(const iterator &i) const { return (isend == i.isend); }
bool operator !=(const iterator &i) const { return !(i == *this); }
- bool operator < (const iterator &i) const { return (*this - i < 0); }
+ bool operator < (const iterator &i) const { return (*this - i < 0); }
+ bool operator > (const iterator &i) const { return (*this - i > 0); }
+ bool operator >=(const iterator &i) const { return (*this - i >= 0); }
gen_col_vector_iterator(void) {}
gen_col_vector_iterator(const gen_col_vector_iterator<MPT> &itm)
diff --git a/tests/crack.cc b/tests/crack.cc
index 52350dde..f5aff767 100644
--- a/tests/crack.cc
+++ b/tests/crack.cc
@@ -376,31 +376,31 @@ struct crack_problem {
std::string name_of_dof(getfem::pdof_description dof) {
char s[200];
- sprintf(s, "UnknownDof[%p]", (void*)dof);
+ snprintf(s, 199, "UnknownDof[%p]", (void*)dof);
for (dim_type d = 0; d < 4; ++d) {
if (dof == getfem::lagrange_dof(d)) {
- sprintf(s, "Lagrange[%d]", d); goto found;
+ snprintf(s, 199, "Lagrange[%d]", d); goto found;
}
if (dof == getfem::normal_derivative_dof(d)) {
- sprintf(s, "D_n[%d]", d); goto found;
+ snprintf(s, 199, "D_n[%d]", d); goto found;
}
if (dof == getfem::global_dof(d)) {
- sprintf(s, "GlobalDof[%d]", d);
+ snprintf(s, 199, "GlobalDof[%d]", d);
}
if (dof == getfem::mean_value_dof(d)) {
- sprintf(s, "MeanValue[%d]", d);
+ snprintf(s, 199, "MeanValue[%d]", d);
}
if (getfem::dof_xfem_index(dof) != 0) {
- sprintf(s, "Xfem[idx:%d]", int(dof_xfem_index(dof)));
+ snprintf(s, 199, "Xfem[idx:%d]", int(dof_xfem_index(dof)));
}
for (dim_type r = 0; r < d; ++r) {
if (dof == getfem::derivative_dof(d, r)) {
- sprintf(s, "D_%c[%d]", "xyzuvw"[r], d); goto found;
+ snprintf(s, 199, "D_%c[%d]", "xyzuvw"[r], d); goto found;
}
for (dim_type t = 0; t < d; ++t) {
if (dof == getfem::second_derivative_dof(d, r, t)) {
- sprintf(s, "D2%c%c[%d]", "xyzuvw"[r], "xyzuvw"[t], d);
+ snprintf(s, 199, "D2%c%c[%d]", "xyzuvw"[r], "xyzuvw"[t], d);
goto found;
}
}
diff --git a/tests/heat_equation.cc b/tests/heat_equation.cc
index 25e0fec2..c12a0258 100644
--- a/tests/heat_equation.cc
+++ b/tests/heat_equation.cc
@@ -300,7 +300,7 @@ bool heat_equation_problem::solve(void) {
// cout << "t = " << model.get_time() << endl;
gmm::copy(model.real_variable("u"), U);
if (PARAM.int_value("EXPORT_SOLUTION") != 0) {
- char s[100]; sprintf(s, "step%d", int(t/dt)+1);
+ char s[100]; snprintf(s, 100, "step%d", int(t/dt)+1);
gmm::vecsave(datafilename + s + ".U", U);
}
diff --git a/tests/integration.cc b/tests/integration.cc
index 4f83d107..2d5a0ba7 100644
--- a/tests/integration.cc
+++ b/tests/integration.cc
@@ -204,29 +204,29 @@ const std::vector<size_type>& CUBE4D_D() {
static void check_orders() {
char s[512];
for (int k=1; k < 20; k+=6) {
- sprintf(s,"IM_GAUSS1D(%d)",k); check_im_order(s);
- sprintf(s,"IM_GAUSSLOBATTO1D(%d)",k); check_im_order(s);
+ snprintf(s, 511, "IM_GAUSS1D(%d)",k); check_im_order(s);
+ snprintf(s, 511, "IM_GAUSSLOBATTO1D(%d)",k); check_im_order(s);
}
for (std::vector<size_type>::const_iterator it = TRIANGLE_D().begin(); it !=
TRIANGLE_D().end(); ++it) {
- sprintf(s,"IM_TRIANGLE(%d)",int(*it)); check_im_order(s);
+ snprintf(s,511, "IM_TRIANGLE(%d)",int(*it)); check_im_order(s);
}
for (std::vector<size_type>::const_iterator it = TETRA_D().begin(); it !=
TETRA_D().end(); ++it) {
- sprintf(s,"IM_TETRAHEDRON(%d)",int(*it)); check_im_order(s);
+ snprintf(s,511, "IM_TETRAHEDRON(%d)",int(*it)); check_im_order(s);
}
for (std::vector<size_type>::const_iterator it = QUAD_D().begin(); it !=
QUAD_D().end(); ++it) {
- sprintf(s,"IM_QUAD(%d)",int(*it)); check_im_order(s);
+ snprintf(s,511, "IM_QUAD(%d)",int(*it)); check_im_order(s);
}
for (std::vector<size_type>::const_iterator it = TETRA_D().begin(); it !=
TETRA_D().end(); ++it) {
- sprintf(s,"IM_TETRAHEDRON(%d)",int(*it)); check_im_order(s);
+ snprintf(s,511, "IM_TETRAHEDRON(%d)",int(*it)); check_im_order(s);
}
for (std::vector<size_type>::const_iterator it = SIMPLEX4_D().begin(); it !=
SIMPLEX4_D().end(); ++it) {
- sprintf(s,"IM_SIMPLEX4D(%d)",int(*it)); check_im_order(s);
+ snprintf(s,511, "IM_SIMPLEX4D(%d)",int(*it)); check_im_order(s);
}
for (std::vector<size_type>::const_iterator it = HEXA_D().begin(); it !=
HEXA_D().end(); ++it) {
- sprintf(s,"IM_HEXAHEDRON(%d)",int(*it)); check_im_order(s);
+ snprintf(s,511, "IM_HEXAHEDRON(%d)",int(*it)); check_im_order(s);
}
for (std::vector<size_type>::const_iterator it = CUBE4D_D().begin(); it !=
CUBE4D_D().end(); ++it) {
- sprintf(s,"IM_CUBE4D(%d)",int(*it)); check_im_order(s);
+ snprintf(s,511, "IM_CUBE4D(%d)",int(*it)); check_im_order(s);
}
}
@@ -234,11 +234,11 @@ static void check_methods() {
char s[512];
getfem::pintegration_method ppi;
for (size_type k=0; k < 15; ++k) {
- sprintf(s,"IM_GAUSS1D(%d)",int(k)); ppi = getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_GAUSS1D(%d)",int(k)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::simplex_geotrans(1,1));
- sprintf(s,"IM_NC(1,%d)",int(k)); ppi = getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_NC(1,%d)",int(k)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::simplex_geotrans(1,1));
- sprintf(s,"IM_EXACT_SIMPLEX(1)"); ppi = getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_EXACT_SIMPLEX(1)"); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::simplex_geotrans(1,1));
}
@@ -246,13 +246,13 @@ static void check_methods() {
for (size_type d=2; d < 5; ++d) {
for (size_type k=0; k < 7-d; ++k) {
- sprintf(s,"IM_EXACT_SIMPLEX(%d)",int(d)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_EXACT_SIMPLEX(%d)",int(d)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::simplex_geotrans(d,1));
}
}
for (std::vector<size_type>::const_iterator it = TRIANGLE_D().begin(); it !=
TRIANGLE_D().end(); ++it) {
- sprintf(s,"IM_TRIANGLE(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_TRIANGLE(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
for (size_type k=1; k <= *it; ++k) {
check_method(s,ppi,k,bgeot::simplex_geotrans(2,1));
}
@@ -261,19 +261,19 @@ static void check_methods() {
for (size_type d=2; d < 5; ++d) {
for (size_type i=1; i < 8; ++i) {
for (size_type k=0; k < std::min(i,5-d); ++k) {
- sprintf(s,"IM_NC(%d,%d)",int(d),int(i)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_NC(%d,%d)",int(d),int(i)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::simplex_geotrans(d,1));
}
}
}
for (std::vector<size_type>::const_iterator it = TETRA_D().begin(); it !=
TETRA_D().end(); ++it) {
- sprintf(s,"IM_TETRAHEDRON(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_TETRAHEDRON(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
for (size_type k=1; k <= *it; ++k) {
check_method(s,ppi,k,bgeot::simplex_geotrans(3,1));
}
}
for (std::vector<size_type>::const_iterator it = SIMPLEX4_D().begin(); it !=
SIMPLEX4_D().end(); ++it) {
- sprintf(s,"IM_SIMPLEX4D(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_SIMPLEX4D(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
for (size_type k=1; k <= *it; ++k) {
check_method(s,ppi,k,bgeot::simplex_geotrans(4,1));
}
@@ -288,48 +288,48 @@ static void check_methods() {
default: kmax = 3; break;
}
for (size_type k=0; k < kmax; ++k) {
- sprintf(s,"IM_EXACT_PARALLELEPIPED(%d)",int(d)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_EXACT_PARALLELEPIPED(%d)",int(d)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::parallelepiped_linear_geotrans(d));
- sprintf(s,"IM_GAUSS_PARALLELEPIPED(%d,%d)",int(d),int(k)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_GAUSS_PARALLELEPIPED(%d,%d)",int(d),int(k)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::parallelepiped_linear_geotrans(d));
- sprintf(s,"IM_NC_PARALLELEPIPED(%d,%d)",int(d),int(k)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_NC_PARALLELEPIPED(%d,%d)",int(d),int(k)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::parallelepiped_linear_geotrans(d));
if (d>1) {
-
sprintf(s,"IM_PRODUCT(IM_GAUSS_PARALLELEPIPED(%d,%d),IM_NC(1,%d))",int(d-1),int(k),int(k));
+
snprintf(s,511,"IM_PRODUCT(IM_GAUSS_PARALLELEPIPED(%d,%d),IM_NC(1,%d))",int(d-1),int(k),int(k));
ppi = getfem::int_method_descriptor(s);
check_method(s,ppi,k,bgeot::parallelepiped_linear_geotrans(d));
}
}
}
for (std::vector<size_type>::const_iterator it = QUAD_D().begin(); it !=
QUAD_D().end(); ++it) {
- sprintf(s,"IM_QUAD(%d)",int(*it)); ppi = getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_QUAD(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
for (size_type k=1; k <= size_type(sqrt(scalar_type(*it))); k++) {
check_method(s,ppi,k,bgeot::parallelepiped_linear_geotrans(2));
}
}
for (std::vector<size_type>::const_iterator it = HEXA_D().begin(); it !=
HEXA_D().end(); ++it) {
- sprintf(s,"IM_HEXAHEDRON(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_HEXAHEDRON(%d)",int(*it)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,size_type(::pow(scalar_type(*it),1./3.)),
bgeot::parallelepiped_linear_geotrans(3));
}
for (std::vector<size_type>::const_iterator it = CUBE4D_D().begin(); it !=
CUBE4D_D().end(); ++it) {
- sprintf(s,"IM_CUBE4D(%d)", int(*it)); ppi =
getfem::int_method_descriptor(s);
+ snprintf(s,511,"IM_CUBE4D(%d)", int(*it)); ppi =
getfem::int_method_descriptor(s);
check_method(s,ppi,1,bgeot::parallelepiped_linear_geotrans(4));
}
for (size_type d=2; d < 5; ++d) {
for (size_type k=0; k < 7-d; ++k) {
- sprintf(s,"IM_EXACT_PRISM(%d)",int(d));
+ snprintf(s,511,"IM_EXACT_PRISM(%d)",int(d));
ppi = getfem::int_method_descriptor(s);
check_method(s, getfem::int_method_descriptor(s), k,
bgeot::prism_linear_geotrans(d));
- sprintf(s,"IM_NC_PRISM(%d,%d)", int(d),int(k));
+ snprintf(s,511,"IM_NC_PRISM(%d,%d)", int(d),int(k));
ppi = getfem::int_method_descriptor(s);
check_method(s, getfem::int_method_descriptor(s), k,
bgeot::prism_geotrans(d, short_type(std::max(k,
size_type(1)))));
if (d == 3) {
- sprintf(s,"IM_PRODUCT(IM_TRIANGLE(6),IM_GAUSS1D(6))");
+ snprintf(s,511,"IM_PRODUCT(IM_TRIANGLE(6),IM_GAUSS1D(6))");
ppi = getfem::int_method_descriptor(s);
check_method(s, getfem::int_method_descriptor(s), k,
bgeot::prism_geotrans(d,short_type(std::max<size_type>(k,1))));
@@ -340,32 +340,32 @@ static void check_methods() {
{
- sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_GAUSS1D(3),4)");
+ snprintf(s,511,"IM_STRUCTURED_COMPOSITE(IM_GAUSS1D(3),4)");
check_method(s, getfem::int_method_descriptor(s), 3,
bgeot::simplex_geotrans(1,1));
- sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(3),4)");
+ snprintf(s,511,"IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(3),4)");
check_method(s, getfem::int_method_descriptor(s),
3,bgeot::simplex_geotrans(2,1));
- sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_TETRAHEDRON(5),3)");
+ snprintf(s,511,"IM_STRUCTURED_COMPOSITE(IM_TETRAHEDRON(5),3)");
check_method(s, getfem::int_method_descriptor(s),
5,bgeot::simplex_geotrans(3,1));
/* // not implemented ...
- sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_NC(4,2),3)");
+ snprintf(s,"IM_STRUCTURED_COMPOSITE(IM_NC(4,2),3)");
check_method(s, getfem::int_method_descriptor(s),
2,bgeot::simplex_geotrans(4,1));
*/
- sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_QUAD(5),10)"); // QUAD(5) can't
integrate Q5 polynomials, but it is sufficiently refined...
+ snprintf(s,511,"IM_STRUCTURED_COMPOSITE(IM_QUAD(5),10)"); // QUAD(5) can't
integrate Q5 polynomials, but it is sufficiently refined...
check_method(s, getfem::int_method_descriptor(s), 5,
bgeot::parallelepiped_linear_geotrans(2));
- sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_GAUSS_PARALLELEPIPED(3,2),2)");
+ snprintf(s,511,"IM_STRUCTURED_COMPOSITE(IM_GAUSS_PARALLELEPIPED(3,2),2)");
check_method(s, getfem::int_method_descriptor(s), 2,
bgeot::parallelepiped_linear_geotrans(3));
- sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_GAUSS_PARALLELEPIPED(4,2),2)");
+ snprintf(s,511,"IM_STRUCTURED_COMPOSITE(IM_GAUSS_PARALLELEPIPED(4,2),2)");
check_method(s, getfem::int_method_descriptor(s), 2,
bgeot::parallelepiped_linear_geotrans(4));
cerr << "FIXME: structured_mesh not implemented for prisms\n";
- /*sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_NC_PRISM(3,3),2)");
+ /*snprintf(s,"IM_STRUCTURED_COMPOSITE(IM_NC_PRISM(3,3),2)");
check_method(s, getfem::int_method_descriptor(s), 2,
bgeot::prism_geotrans(3,1));*/
- sprintf(s, "IM_QUASI_POLAR(IM_GAUSS_PARALLELEPIPED(2,8), 2)");
+ snprintf(s,511, "IM_QUASI_POLAR(IM_GAUSS_PARALLELEPIPED(2,8), 2)");
check_method(s, getfem::int_method_descriptor(s), 2,
bgeot::simplex_geotrans(2,1));
- sprintf(s, "IM_QUASI_POLAR(IM_PRODUCT(IM_TRIANGLE(4), IM_GAUSS1D(4)), 2,
3)");
+ snprintf(s,511, "IM_QUASI_POLAR(IM_PRODUCT(IM_TRIANGLE(4), IM_GAUSS1D(4)),
2, 3)");
check_method(s, getfem::int_method_descriptor(s), 1,
bgeot::simplex_geotrans(3,1));
- sprintf(s, "IM_QUASI_POLAR(IM_PRODUCT(IM_TRIANGLE(4), IM_GAUSS1D(4)), 1)");
+ snprintf(s,511, "IM_QUASI_POLAR(IM_PRODUCT(IM_TRIANGLE(4), IM_GAUSS1D(4)),
1)");
check_method(s, getfem::int_method_descriptor(s), 1,
bgeot::simplex_geotrans(3,1));
- sprintf(s, "IM_QUASI_POLAR(IM_TETRAHEDRON(8), 2)");
+ snprintf(s,511, "IM_QUASI_POLAR(IM_TETRAHEDRON(8), 2)");
check_method(s, getfem::int_method_descriptor(s), 2,
bgeot::simplex_geotrans(3,1));
}
}
@@ -412,34 +412,34 @@ static void print_some_methods() {
cout.precision(8);
for (size_type i = 1; i < 15; ++i) {
- sprintf(meth, "IM_GAUSS1D(%d)", int(2*(i - 1)));
+ snprintf(meth,499, "IM_GAUSS1D(%d)", int(2*(i - 1)));
print_method(getfem::int_method_descriptor(meth));
}
- /*sprintf(meth, "IM_PRODUCT(IM_GAUSS1D(2),IM_GAUSS1D(2))");
+ /*snprintf(meth, "IM_PRODUCT(IM_GAUSS1D(2),IM_GAUSS1D(2))");
print_method(getfem::int_method_descriptor(meth));
for (size_type n = 1; n < 6; n++) {
for (size_type i = 0; i < 3; ++i) {
- sprintf(meth, "IM_NC(%d,%d)", int(n), int(i));
+ snprintf(meth,499, "IM_NC(%d,%d)", int(n), int(i));
print_method(getfem::int_method_descriptor(meth));
}
}
- sprintf(meth, "IM_NC(2, 2)");
+ snprintf(meth, "IM_NC(2, 2)");
print_method(getfem::int_method_descriptor(meth));
- sprintf(meth, "IM_STRUCTURED_COMPOSITE(IM_NC(2, 2), 1)");
+ snprintf(meth,499, "IM_STRUCTURED_COMPOSITE(IM_NC(2, 2), 1)");
print_method(getfem::int_method_descriptor(meth));
- sprintf(meth, "IM_STRUCTURED_COMPOSITE(IM_QUAD(2),3)");
+ snprintf(meth,499, "IM_STRUCTURED_COMPOSITE(IM_QUAD(2),3)");
print_method(getfem::int_method_descriptor(meth));
*/
- //sprintf(meth, "IM_QUASI_POLAR(IM_GAUSS_PARALLELEPIPED(2, 5),2)");
- //sprintf(meth, "IM_QUASI_POLAR(IM_PRODUCT(IM_TRIANGLE(4), IM_GAUSS1D(4)),
2, 3)");
- //sprintf(meth, "IM_QUASI_POLAR(IM_TETRAHEDRON(3), 2)");
- sprintf(meth, "IM_QUASI_POLAR(IM_PRODUCT(IM_TRIANGLE(4), IM_GAUSS1D(4)),
1)");
+ //snprintf(meth,499, "IM_QUASI_POLAR(IM_GAUSS_PARALLELEPIPED(2, 5),2)");
+ //snprintf(meth,499, "IM_QUASI_POLAR(IM_PRODUCT(IM_TRIANGLE(4),
IM_GAUSS1D(4)), 2, 3)");
+ //snprintf(meth,499, "IM_QUASI_POLAR(IM_TETRAHEDRON(3), 2)");
+ snprintf(meth,499, "IM_QUASI_POLAR(IM_PRODUCT(IM_TRIANGLE(4),
IM_GAUSS1D(4)), 1)");
print_method(getfem::int_method_descriptor(meth));
print_method(getfem::classical_approx_im(bgeot::simplex_geotrans(3,2), 3));
@@ -451,7 +451,7 @@ int main(/* int argc, char **argv */) {
FE_ENABLE_EXCEPT; // Enable floating point exception for Nan.
try {
- /*char s[600];
sprintf(s,"IM_STRUCTURED_COMPOSITE(IM_GAUSS_PARALLELEPIPED(3,2),2)");
+ /*char s[600];
snprintf(s,499,"IM_STRUCTURED_COMPOSITE(IM_GAUSS_PARALLELEPIPED(3,2),2)");
//check_method(s, getfem::int_method_descriptor(s), 2,
bgeot::parallelepiped_linear_geotrans(3));
getfem::pfem pf = getfem::QK_fem(2,1);
//getfem::classical_fem(bgeot::parallelepiped_linear_geotrans(2),1);
return 100;*/
diff --git a/tests/nonlinear_elastostatic.cc b/tests/nonlinear_elastostatic.cc
index 2b6a2051..63ff7d3a 100644
--- a/tests/nonlinear_elastostatic.cc
+++ b/tests/nonlinear_elastostatic.cc
@@ -298,7 +298,7 @@ bool elastostatic_problem::solve(plain_vector &U) {
getfem::standard_solve(model, iter);
gmm::copy(model.real_variable("u"), U);
- //char s[100]; sprintf(s, "step%d", step+1);
+ //char s[100]; snprintf(s, 100, "step%d", step+1);
/* append the new displacement to the exported opendx file */
exp.write_point_data(mf_u, U); //, s);
diff --git a/tests/poly.cc b/tests/poly.cc
index cacce253..aafc6e4c 100644
--- a/tests/poly.cc
+++ b/tests/poly.cc
@@ -29,7 +29,7 @@ std::string horner_print(bgeot::short_type degree,
bgeot::power_index &mi,
char s[1024];
const char *xyz = "xyzabcdefghijklmnop";
if (k == 0) {
- sprintf(s, "P[%d]", int(mi.global_index()));
+ snprintf(s, 1023, "P[%d]", int(mi.global_index()));
return s;
} else {
std::string str;
@@ -38,11 +38,11 @@ std::string horner_print(bgeot::short_type degree,
bgeot::power_index &mi,
mi[k-1] != bgeot::short_type(-1); (mi[k-1])--) {
//res = horner(mi, k-1, de + mi[k-1], it) + v * res;
if (str.size())
- sprintf(s, "%s + %c*(%s)",
+ snprintf(s, 1023, "%s + %c*(%s)",
horner_print(degree,
mi,bgeot::short_type(k-1),bgeot::short_type(de+mi[k-1])).c_str(), xyz[k-1],
str.c_str());
else
- sprintf(s, "%s", horner_print(degree,
mi,bgeot::short_type(k-1),bgeot::short_type(de+mi[k-1])).c_str());
+ snprintf(s, 1023, "%s", horner_print(degree,
mi,bgeot::short_type(k-1),bgeot::short_type(de+mi[k-1])).c_str());
str = s;
}
mi[k-1] = 0;
diff --git a/tests/schwarz_additive.cc b/tests/schwarz_additive.cc
index 9b58bd4e..2df0dac8 100644
--- a/tests/schwarz_additive.cc
+++ b/tests/schwarz_additive.cc
@@ -167,7 +167,7 @@ void pb_data::init(bgeot::md_param ¶ms) {
dal::bit_vector nn = mesh.convex_index(dim_type(N));
char method[500];
- sprintf(method, "FEM_PK(%d, %d)", N, K);
+ snprintf(method, 499, "FEM_PK(%d, %d)", N, K);
mim.set_integration_method(nn, bgeot::dim_type(2*K));
mef.set_finite_element(nn, getfem::fem_descriptor(method));
mef_coarse.set_finite_element(mesh_coarse.convex_index(dim_type(N)),
diff --git a/tests/test_assembly.cc b/tests/test_assembly.cc
index 1f7381c5..53f278c2 100644
--- a/tests/test_assembly.cc
+++ b/tests/test_assembly.cc
@@ -573,8 +573,8 @@ static void test_new_assembly(int N, int NX, int pK) {
getfem::mesh m;
- char Ns[5]; sprintf(Ns, "%d", N);
- char Ks[5]; sprintf(Ks, "%d", pK);
+ char Ns[5]; snprintf(Ns, 5, "%d", N);
+ char Ks[5]; snprintf(Ks, 5, "%d", pK);
bgeot::pgeometric_trans pgt =
bgeot::geometric_trans_descriptor
((std::string("GT_PK(") + Ns + ",1)").c_str());
diff --git a/tests/test_continuation.cc b/tests/test_continuation.cc
index bb6f41d0..48c3315a 100644
--- a/tests/test_continuation.cc
+++ b/tests/test_continuation.cc
@@ -144,7 +144,7 @@ bool state_problem::cont(plain_vector &U) {
gmm::copy(gmm::sub_vector(Y, gmm::sub_interval(0, nb_dof)), U);
lambda = Y[nb_dof];
char s[100];
- sprintf(s, ".T_Y%d", (int) PARAM.int_value("IND_BRANCH", "Branch"));
+ snprintf(s, 99, ".T_Y%d", (int) PARAM.int_value("IND_BRANCH", "Branch"));
gmm::vecload(datapath + bp_rootfilename + s, Y);
gmm::copy(gmm::scaled(gmm::sub_vector(Y, gmm::sub_interval(0, nb_dof)),
direction), T_U);
@@ -183,21 +183,21 @@ bool state_problem::cont(plain_vector &U) {
sing_label = S.get_sing_label();
if (sing_label.size() > 0) {
if (sing_label == "limit point")
- sprintf(s1, "Step %lu: %s", step + 1, sing_label.c_str());
+ snprintf(s1, 99, "Step %lu: %s", step + 1, sing_label.c_str());
else if (sing_label == "smooth bifurcation point") {
gmm::copy(S.get_x_sing(),
gmm::sub_vector(Y, gmm::sub_interval(0, nb_dof)));
Y[nb_dof] = S.get_gamma_sing();
- sprintf(s1, "continuation_step_%lu", step + 1);
+ snprintf(s1, 99, "continuation_step_%lu", step + 1);
gmm::vecsave(datapath + s1 + "_bp.Y", Y);
for (size_type i = 0; i < S.nb_tangent_sing(); i++) {
gmm::copy(S.get_tx_sing(i),
gmm::sub_vector(Y, gmm::sub_interval(0, nb_dof)));
Y[nb_dof] = S.get_tgamma_sing(i);
- sprintf(s2, "_bp.T_Y%lu", i + 1);
+ snprintf(s2, 99, "_bp.T_Y%lu", i + 1);
gmm::vecsave(datapath + s1 + s2, Y);
}
- sprintf(s1, "Step %lu: %s, %u branch(es) located", step + 1,
+ snprintf(s1, 99, "Step %lu: %s, %u branch(es) located", step + 1,
sing_label.c_str(), (unsigned int) S.nb_tangent_sing());
}
sing_out.push_back(s1);
diff --git a/tests/test_interpolated_fem.cc b/tests/test_interpolated_fem.cc
index 54fdbdd6..b8498cdf 100644
--- a/tests/test_interpolated_fem.cc
+++ b/tests/test_interpolated_fem.cc
@@ -113,27 +113,27 @@ void lap_pb::init(void) {
char meth[500];
getfem::pintegration_method ppi;
switch (integration) {
- case 0 : sprintf(meth, "IM_EXACT_SIMPLEX(%d)", int(N)); break;
- case 1 : sprintf(meth, "IM_NC(%d, %d)", int(N), int(KI)); break;
- case 2 : sprintf(meth, "IM_GAUSS1D(%d)", int(KI)); break;
- case 3 : sprintf(meth, "IM_STRUCTURED_COMPOSITE(IM_NC(%d, %d), %d)",
+ case 0 : snprintf(meth, 499, "IM_EXACT_SIMPLEX(%d)", int(N)); break;
+ case 1 : snprintf(meth, 499, "IM_NC(%d, %d)", int(N), int(KI)); break;
+ case 2 : snprintf(meth, 499, "IM_GAUSS1D(%d)", int(KI)); break;
+ case 3 : snprintf(meth, 499, "IM_STRUCTURED_COMPOSITE(IM_NC(%d, %d), %d)",
int(N), int(2*K), int(KI)); break;
- case 11 : sprintf(meth, "IM_TRIANGLE(1)"); break;
- case 12 : sprintf(meth, "IM_TRIANGLE(2)"); break;
- case 13 : sprintf(meth, "IM_TRIANGLE(3)"); break;
- case 14 : sprintf(meth, "IM_TRIANGLE(4)"); break;
- case 15 : sprintf(meth, "IM_TRIANGLE(5)"); break;
- case 16 : sprintf(meth, "IM_TRIANGLE(6)"); break;
- case 17 : sprintf(meth, "IM_TRIANGLE(7)"); break;
- case 21 : sprintf(meth, "IM_TETRAHEDRON(1)"); break;
- case 22 : sprintf(meth, "IM_TETRAHEDRON(2)"); break;
- case 23 : sprintf(meth, "IM_TETRAHEDRON(3)"); break;
- case 25 : sprintf(meth, "IM_TETRAHEDRON(5)"); break;
+ case 11 : snprintf(meth, 499, "IM_TRIANGLE(1)"); break;
+ case 12 : snprintf(meth, 499, "IM_TRIANGLE(2)"); break;
+ case 13 : snprintf(meth, 499, "IM_TRIANGLE(3)"); break;
+ case 14 : snprintf(meth, 499, "IM_TRIANGLE(4)"); break;
+ case 15 : snprintf(meth, 499, "IM_TRIANGLE(5)"); break;
+ case 16 : snprintf(meth, 499, "IM_TRIANGLE(6)"); break;
+ case 17 : snprintf(meth, 499, "IM_TRIANGLE(7)"); break;
+ case 21 : snprintf(meth, 499, "IM_TETRAHEDRON(1)"); break;
+ case 22 : snprintf(meth, 499, "IM_TETRAHEDRON(2)"); break;
+ case 23 : snprintf(meth, 499, "IM_TETRAHEDRON(3)"); break;
+ case 25 : snprintf(meth, 499, "IM_TETRAHEDRON(5)"); break;
default : GMM_ASSERT1(false, "Undefined integration method");
}
ppi = getfem::int_method_descriptor(meth);
- sprintf(meth, "FEM_PK(%d,%d)", int(N), int(K));
+ snprintf(meth, 499, "FEM_PK(%d,%d)", int(N), int(K));
nn = mesh1.convex_index(dim_type(N));
mim1.set_integration_method(nn, ppi);
mef1.set_finite_element(nn, getfem::fem_descriptor(meth));
diff --git a/tests/test_mat_elem.cc b/tests/test_mat_elem.cc
index f57c07a3..94847c6a 100644
--- a/tests/test_mat_elem.cc
+++ b/tests/test_mat_elem.cc
@@ -142,8 +142,8 @@ void lap_pb::init(void)
switch (integration) {
case 0 :
switch (mesh_type) {
- case 0 : sprintf(meth, "IM_EXACT_SIMPLEX(%d)", int(N)); break;
- case 1 : sprintf(meth, "IM_EXACT_PARALLELEPIPED(%d)", int(N)); break;
+ case 0 : snprintf(meth, 499, "IM_EXACT_SIMPLEX(%d)", int(N)); break;
+ case 1 : snprintf(meth, 499, "IM_EXACT_PARALLELEPIPED(%d)", int(N)); break;
default : GMM_ASSERT1(false,
"Exact integration not allowed in this context");
}
@@ -151,80 +151,80 @@ void lap_pb::init(void)
case 1 :
switch (mesh_type) {
case 0 :
- sprintf(meth, "IM_NC(%d,%d)", int(N), int(2*K));
+ snprintf(meth, 499, "IM_NC(%d,%d)", int(N), int(2*K));
break;
case 1 :
- sprintf(meth, "IM_NC_PARALLELEPIPED(%d,%d)", int(N), int(2*K));
+ snprintf(meth, 499, "IM_NC_PARALLELEPIPED(%d,%d)", int(N), int(2*K));
break;
case 2 :
- sprintf(meth, "IM_NC_PRISM(%d,%d)", int(N), int(2*K));
+ snprintf(meth, 499, "IM_NC_PRISM(%d,%d)", int(N), int(2*K));
break;
}
break;
case 2 :
if (mesh_type == 1)
- sprintf(meth, "IM_GAUSS_PARALLELEPIPED(%d,%d)", int(N), int(KI));
+ snprintf(meth, 499, "IM_GAUSS_PARALLELEPIPED(%d,%d)", int(N), int(KI));
else
GMM_ASSERT1(false, "Product of 1D Gauss only for parallelepipeds");
break;
case 3 :
if (mesh_type == 0) {
if (N == 1)
- sprintf(meth, "IM_STRUCTURED_COMPOSITE(IM_GAUSS1D(%d), %d)",2,int(KI));
+ snprintf(meth, 499, "IM_STRUCTURED_COMPOSITE(IM_GAUSS1D(%d),
%d)",2,int(KI));
else if (N == 2)
- sprintf(meth, "IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(%d), %d)",
+ snprintf(meth, 499, "IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(%d), %d)",
2,int(KI));
else
- sprintf(meth, "IM_STRUCTURED_COMPOSITE(IM_NC(%d, %d), %d)",
+ snprintf(meth, 499, "IM_STRUCTURED_COMPOSITE(IM_NC(%d, %d), %d)",
int(N), int(2*K), int(KI));
}
else
GMM_ASSERT1(false, "Composite integration only for simplexes");
break;
- case 11 : sprintf(meth, "IM_TRIANGLE(1)"); break;
- case 12 : sprintf(meth, "IM_TRIANGLE(2)"); break;
- case 13 : sprintf(meth, "IM_TRIANGLE(3)"); break;
- case 14 : sprintf(meth, "IM_TRIANGLE(4)"); break;
- case 15 : sprintf(meth, "IM_TRIANGLE(5)"); break;
- case 16 : sprintf(meth, "IM_TRIANGLE(6)"); break;
- case 17 : sprintf(meth, "IM_TRIANGLE(7)"); break;
- case 21 : sprintf(meth, "IM_TETRAHEDRON(1)"); break;
- case 22 : sprintf(meth, "IM_TETRAHEDRON(2)"); break;
- case 23 : sprintf(meth, "IM_TETRAHEDRON(3)"); break;
- case 25 : sprintf(meth, "IM_TETRAHEDRON(5)"); break;
- case 32 : sprintf(meth, "IM_QUAD(2)"); break;
- case 33 : sprintf(meth, "IM_QUAD(3)"); break;
- case 35 : sprintf(meth, "IM_QUAD(5)"); break;
+ case 11 : snprintf(meth, 499, "IM_TRIANGLE(1)"); break;
+ case 12 : snprintf(meth, 499, "IM_TRIANGLE(2)"); break;
+ case 13 : snprintf(meth, 499, "IM_TRIANGLE(3)"); break;
+ case 14 : snprintf(meth, 499, "IM_TRIANGLE(4)"); break;
+ case 15 : snprintf(meth, 499, "IM_TRIANGLE(5)"); break;
+ case 16 : snprintf(meth, 499, "IM_TRIANGLE(6)"); break;
+ case 17 : snprintf(meth, 499, "IM_TRIANGLE(7)"); break;
+ case 21 : snprintf(meth, 499, "IM_TETRAHEDRON(1)"); break;
+ case 22 : snprintf(meth, 499, "IM_TETRAHEDRON(2)"); break;
+ case 23 : snprintf(meth, 499, "IM_TETRAHEDRON(3)"); break;
+ case 25 : snprintf(meth, 499, "IM_TETRAHEDRON(5)"); break;
+ case 32 : snprintf(meth, 499, "IM_QUAD(2)"); break;
+ case 33 : snprintf(meth, 499, "IM_QUAD(3)"); break;
+ case 35 : snprintf(meth, 499, "IM_QUAD(5)"); break;
default : GMM_ASSERT1(false, "Undefined integration method");
}
ppi = getfem::int_method_descriptor(meth);
getfem::pfem pfprinc = 0;
switch (mesh_type) {
case 0 :
- sprintf(meth, "FEM_PK(%d,%d)", int(N), int(K));
+ snprintf(meth, 499, "FEM_PK(%d,%d)", int(N), int(K));
pfprinc = getfem::fem_descriptor(meth);
mim.set_integration_method(nn, ppi);
mef.set_finite_element(nn, getfem::fem_descriptor(meth));
mef_data.set_finite_element(nn, getfem::fem_descriptor(meth));
- sprintf(meth, "FEM_PK(%d,%d)", int(N), 0);
+ snprintf(meth, 499, "FEM_PK(%d,%d)", int(N), 0);
break;
case 1 :
- sprintf(meth, "FEM_QK(%d,%d)", int(N), K);
+ snprintf(meth, 499, "FEM_QK(%d,%d)", int(N), K);
pfprinc = getfem::fem_descriptor(meth);
mim.set_integration_method(nn, ppi);
mef.set_finite_element(nn, getfem::fem_descriptor(meth));
mef_data.set_finite_element(nn, getfem::fem_descriptor(meth));
- sprintf(meth, "FEM_QK(%d,%d)", int(N), 0);
+ snprintf(meth, 499, "FEM_QK(%d,%d)", int(N), 0);
break;
case 2 :
- sprintf(meth, "FEM_PK_PRISM(%d,%d)", int(N), K);
+ snprintf(meth, 499, "FEM_PK_PRISM(%d,%d)", int(N), K);
pfprinc = getfem::fem_descriptor(meth);
mim.set_integration_method(nn, ppi);
mef.set_finite_element(nn, getfem::fem_descriptor(meth));
mef_data.set_finite_element(nn, getfem::fem_descriptor(meth));
- sprintf(meth, "FEM_PK_PRISM(%d,%d)", int(N), 0);
+ snprintf(meth, 499, "FEM_PK_PRISM(%d,%d)", int(N), 0);
break;
}
@@ -234,19 +234,19 @@ void lap_pb::init(void)
case 0 : break;
case 1 :
- sprintf(meth, "FEM_HERMITE(1)");
+ snprintf(meth, 499, "FEM_HERMITE(1)");
pfprinc = getfem::fem_descriptor(meth);
mef.set_finite_element(nn, getfem::fem_descriptor(meth));
break;
case 2 :
- sprintf(meth, "FEM_PK_HIERARCHICAL(%d, %d)", int(N), int(K));
+ snprintf(meth, 499, "FEM_PK_HIERARCHICAL(%d, %d)", int(N), int(K));
pfprinc = getfem::fem_descriptor(meth);
mef.set_finite_element(nn, getfem::fem_descriptor(meth));
break;
case 3 :
- sprintf(meth, "FEM_PK_HIERARCHICAL_COMPOSITE(%d,%d,%d)", int(N), 1,
int(K));
+ snprintf(meth, 499, "FEM_PK_HIERARCHICAL_COMPOSITE(%d,%d,%d)", int(N), 1,
int(K));
pfprinc = getfem::fem_descriptor(meth);
mef.set_finite_element(nn, getfem::fem_descriptor(meth));
break;
diff --git a/tests/wave_equation.cc b/tests/wave_equation.cc
index 3d5f656a..45b16457 100644
--- a/tests/wave_equation.cc
+++ b/tests/wave_equation.cc
@@ -332,7 +332,7 @@ bool wave_equation_problem::solve(void) {
gmm::copy(model.real_variable("u"), U);
if (PARAM.int_value("EXPORT_SOLUTION") != 0) {
- char s[100]; sprintf(s, "step%d", int(t/dt)+1);
+ char s[100]; snprintf(s, 99, "step%d", int(t/dt)+1);
gmm::vecsave(datafilename + s + ".U", U);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] [getfem-commits] branch master updated: minor modification for clang compatibility,
Yves Renard <=