-# Copyright (C) 2007-2017 CEA/DEN, EDF R&D
+# Copyright (C) 2007-2024 CEA, EDF
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
# Author : Anthony Geay (EDF R&D)
import re
-s1=1080
-s2=1104
+s1=2709
+s2=2848
f=file("InterpKernelGaussCoords.cxx","r")
lines=[elt[:-1] for elt in f.readlines()[s1:s2]]
pat0=re.compile("void[\s]+GaussInfo\:\:([^\(]+)\([\s]*\)[\s]*$")
#
nbLines=len(lines)-4
casePat=re.compile("[\s]+case[\s]+([\d]+)\:[\s]*$")
-entries=filter(lambda (i,x): casePat.match(x),enumerate(lines[offsetLines:-1]))
+entries=[i_x for i_x in enumerate(lines[offsetLines:-1]) if casePat.match(i_x[1])]
#
nbPts=len(entries)
if nbLines%nbPts!=0:
if dim<1 or dim>3:
raise Exception("Ooops invalid dim !")
entries=[(i,int(casePat.match(elt).group(1))) for i,elt in entries]
-assert(set([elt[1] for elt in entries])==set(range(nbPts)))
+assert({elt[1] for elt in entries} == set(range(nbPts)))
#
partEndEntries=re.compile("[\s]*break[\s]*\;[\s]*$")
-zePat=re.compile("[\s]+coords\[([\d]+)\][\s]*=[\s]*([\d]+[\.]?[\d]*)[\s]*\;[\s]*$")
+zePat=re.compile("[\s]+coords\[([\d]+)\][\s]*=[\s]*([\-]?[\d]+[\.]?[\d]*)[\s]*\;[\s]*$")
zeTab=(nbPts*dim)*[None]
for lineId,ptId in entries:
endLine=lines[offsetLines+lineId+1+dim]
assert(partEndEntries.match(endLine))
- for j in xrange(dim):
+ for j in range(dim):
curLine=lines[offsetLines+lineId+1+j]
m=zePat.match(curLine)
assert(m)
patInit="Init"
assert(m0.group(1)[-len(patInit):]==patInit)
varName="%s_REF"%((m0.group(1)[:-len(patInit)]).upper())
-print("const double %s[%d]={%s};"%(varName,len(zeTab),", ".join(zeTab)))
-for i in xrange(nbPts):
- print(" case %d:"%(i))
- for j in xrange(dim):
- print(" coords[%d] = %s[%d];"%(j,varName,i*dim+j))
+print(("const double %s[%d]={%s};"%(varName,len(zeTab),", ".join(zeTab))))
+for i in range(nbPts):
+ print((" case %d:"%(i)))
+ for j in range(dim):
+ print((" coords[%d] = %s[%d];"%(j,varName,i*dim+j)))
pass
print(" break;")